c++ 静态成员初始有关问题
c++静态成员初始问题C/C++ code#include iostreamusing namespace stdclass t{public:t(){coutte
c++ 静态成员初始问题
C/C++ code#include <iostream>using namespace std;class t{public: t(){cout<<"t"<<endl;} void send(){cout<<"send"<<endl;}};class A{public: A(){tt.send();} static t tt;};A a;t A::tt;void main(){ }
为什么会出到
send
t
的输出结果 不解
[解决办法]全局变量内存分配和初始化时机问题,内存分配在链接时已经完成,初始化需要代码执行到变量定义处执行。
所以在A a;处tt的内存已经分配,所以可以执行tt.send();但是其构造函数要到t A::tt;处执行。