我有一段简单的C++代码,其中我通过专门化模板来定义模板和全局对象.对象构造函数访问专用模板中的静态成员.但事实证明静态成员在那时没有被初始化.但对于本地对象(在函数体中定义),它可以工作.我糊涂了...
我的c ++编译器是:g ++(Ubuntu 5.4.0-6ubuntu1~16.04.4)5.4.0 20160609
/////////////////////////
template<typename T>
class TB{
public:
const char *_name;
TB(const char * str):_name(str){
cout << "constructor is called:" << _name << endl;
};
virtual ~TB(){
cout << "destructor is called:" << _name << endl;
};
};
template<typename T>
class TA{
public:
const char *_name;
TA(const char * str):_name(str){
cout << "constructor is called:" << _name << endl;
cout << tb._name <<endl;
};
virtual ~TA(){
cout << "destructor is called:" << _name << endl;
}; …Run Code Online (Sandbox Code Playgroud)