在C++中初始化私有静态数据成员的最佳方法是什么?我在头文件中尝试了这个,但它给了我奇怪的链接器错误:
class foo
{
private:
static int i;
};
int foo::i = 0;
Run Code Online (Sandbox Code Playgroud)
我猜这是因为我无法从课外初始化私人成员.那么最好的方法是什么?
对于C++类中的静态成员变量 - 初始化在类外部完成.我想知道为什么?对此有任何逻辑推理/约束吗?或者它是纯粹的遗留实现 - 标准不想纠正?
我认为在类中初始化更"直观"而且不那么混乱.它还给出了变量的静态和全局性.例如,如果您看到静态const成员.