C ++在类中定义静态对象

时间:2017-08-12 09:55:57

标签: c++ class object scope static

我在" 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不能在当前范围内定义。"这样做的正确方法是什么?

1 个答案:

答案 0 :(得分:4)

您可以在main()中设置值,但定义必须在全局范围内:

#include "a.h"
#include "b.h"

B A::b; // <<<<<<

int main () {
    ....
    A::b = B(arg1, arg2);
 // ^^^^
相关问题