【发布时间】:2017-08-12 09:55:57
【问题描述】:
我在“a.h”中有一个 A 类:
#include "b.h"
class A {
public:
static B b;
}
我想在另一个函数中初始化 b
在“main.cpp”中:
#include "a.h"
#include "b.h"
int main () {
....
B A::b = B(arg1, arg2);
但是语法检查器给了我错误:“成员 A::b 不能在当前范围内定义。”这样做的正确方法是什么?
【问题讨论】:
-
顺便说一句,这不是一个好的代码风格。你应该尽量少用静态构造函数。
-
这是为什么呢? @merito
-
因为C++没有定义构造静态对象的顺序。你应该小心使用它。
标签: c++ class object scope static