C++ 内联类定义和对象初始化

标签 c++ inline definition

我刚刚遇到以下代码:

#include <iostream>

static class Foo
{
public:
    Foo()
    {
        std::cout << "HELLO" << std::endl;
    }

    void foo()
    {
        std::cout << "in foo" << std::endl;
    }

}
    blah;

int main()
{
    std::cout << "exiting" << std::endl;
    blah.foo();
    return 0;
}

我以前没有见过上面定义变量的方法——类定义是与变量定义内联完成的。它让我想起了 Java 中的匿名类。这叫什么,它在 C++ 标准中吗?

谢谢

塔拉斯

最佳答案

定义一个class(或struct,完全等价,除了默认是public而不是private) 并声明其类型的变量(或指向此类变量的指针等)——这在 C 中是可以的(使用 struct,但正如我已经提到的 C++ 的 class,除了公共(public)与私有(private)之外,与 struct) 相同,C++ 主要保持与 (ISO-1989) C 的向上兼容性。从未听说过它被称为任何特殊名称。

关于C++ 内联类定义和对象初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2384558/

相关文章:

c++ - 为什么这段代码在调试时慢了 100 倍?

c++ - 如何归一化一维 FFT 输出

c++ - 每帧的 OpenGL 颜色缓冲区增加了过多的帧时间

c++ - 对于可变长度函数指针,在 C++ 中使用内联函数或 MACROS 哪个更好

html - 显示所有子级列表与 css 内联

c++ - 如何替换 operator new/delete 而不干扰库?

c++ - 定义和初始化多维数组时出错

c++ - 在 GCC 上构建的函数多重定义链接器错误 - Makefile 问题

variables - 通过 %let 定义 SAS 宏变量和调用 symput 之间的区别?

jquery - 将特定样式从一个元素复制到另一个元素