为什么 C++ 类需要在类范围之外定义静态字段(数据成员)
Why does c++ class need to define static field(data member) outside the class scope?
可能的重复项:
初始化私有静态成员
为什么我不能在类中初始化非常量静态成员或静态数组?
这对我来说很奇怪。为什么不假设全局范围内存在静态字段?
它必须放在某个地方(在某个目标文件中),以便链接器可以找到它。如果您在 .h 文件中声明了带有静态文件的类,并将此文件包含在几个.cpp文件中,那么应该为该文件分配哪个对象文件的位置将是模棱两可的。
另请注意,原始类型const static
字段可以在类声明中初始化:
class Foo
{
static const int n = 42;
};
相关文章:
- #为""定义宏;静态";针对不同的上下文
- 静态结构和一个定义规则
- 静态变量声明和定义
- 将 RTOS 队列对象封装在仅具有静态分配的 IQueue 自定义接口中
- 我可以在运行时重新定义在 OpenCascade/OCCT 标头中定义的 c++ 静态常量吗?
- C++ 返回指向函数内定义的静态数组的指针是否有效?
- 如何在C++中定义静态成员结构
- 虚拟成员函数的定义是否强制在同一转换单元中动态初始化静态数据成员?
- 指向重载静态成员的函数指针 - 在unique_ptr中用作自定义删除器
- Qt 静态库未定义引用
- 如何将 AST 用于自定义前端操作和 clang 静态分析
- 关于静态常量数据模因的声明和定义的混淆
- 如何在定义时静态检查模板化类?
- C++对象布局是否必须静态定义?
- 何时需要定义类的静态数据成员 (un/-)
- 声明和定义函数静态会产生"undefined reference to function_name()"
- 为什么 gcc 7.3 接受静态定义中的'this'?
- SFML-对象静态定义
- 缩短静态定义
- 基于变量值C/C++静态定义数组