C++类中的静态类变量怎么初始化?

时间:2021-08-18 20:00:20
比如:
class A
{

}

class B
{
    static A m_A;
}

在类B中怎么初始化 m_A???

7 个解决方案

#1


A B::m_A=A();

#2


A B::m_A=A();

#3


A B::m_A;





.

#4


不对啊,报private: static class A B::m_A"  already defined in test.obj
以及fatal error LNK1169: one or more multiply defined symbols found

#5


在类外初始化 A B::m_A=A();还有就是要写默认的构造函数

#6


我找到原因了,我是在头文件中A B::m_A或者A B::m_A=A();   但是实现文件又包含了头文件一次,所以出现了重复,将A B::m_A或者A B::m_A=A()放在实现文件中即可!    汗!

#7


引用 4 楼 systemarchitecter 的回复:
不对啊,报private: static class A B::m_A"  already defined in test.obj
以及fatal error LNK1169: one or more multiply defined symbols found



你是不是在头文件和.cpp的都定义了?

#1


A B::m_A=A();

#2


A B::m_A=A();

#3


A B::m_A;





.

#4


不对啊,报private: static class A B::m_A"  already defined in test.obj
以及fatal error LNK1169: one or more multiply defined symbols found

#5


在类外初始化 A B::m_A=A();还有就是要写默认的构造函数

#6


我找到原因了,我是在头文件中A B::m_A或者A B::m_A=A();   但是实现文件又包含了头文件一次,所以出现了重复,将A B::m_A或者A B::m_A=A()放在实现文件中即可!    汗!

#7


引用 4 楼 systemarchitecter 的回复:
不对啊,报private: static class A B::m_A"  already defined in test.obj
以及fatal error LNK1169: one or more multiply defined symbols found



你是不是在头文件和.cpp的都定义了?