静态变量需要在.cpp初始化,否则报错连接错误,

对于原始数据, int, double, …

simple.h

int _i;
};
simple.cpp
return _i;
}
连接出错:
error LNK2001: unresolved external symbol "private: static int Simple::_i" (?_i@Simple@@0HA
需要在.cpp文件中初始化静态成员变量,初始化跟所在位置无关
int Simple::_i = 0;

对于数组静态变量,头文件可以如下声明
int _i[10];
或者不指定对应数组长度
int _i[]
.cpp文件可以如下初始化:
int Simple::_i[10] = {0};
 
对于STL容器静态变量,初始化方法比较复杂,需要借助一个静态构造函数,通过拷贝构造函数来实现初始化
simple.h定义为:
static INT2INT _i;
};
simple.cpp定义为:
return _tmp;
}
INT2INT Simple::_i(Simple::CreateMap());


 
 



相关文章:

  • 2021-11-02
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-12-25
  • 2022-12-23
  • 2022-12-23
  • 2021-11-21
猜你喜欢
  • 2021-11-25
  • 2022-12-23
  • 2022-01-01
  • 2022-01-30
  • 2021-08-09
  • 2022-12-23
相关资源
相似解决方案