静态成员对象链接错误

时间:2013-09-08 20:16:35

标签: c++

我在构建项目时遇到链接错误。我有一个静态成员指针,我从静态成员函数设置。任何想法是什么问题

class Logger
{

 private:   
  static MyComp* pComp;
 public:    
  static void setComp(MyComp* comp);
      // more methods ..
};  

void Logger::setComp(MyComp* comp)

{   
pComp = comp; 
}

获取链接错误

  

架构x86_64的未定义符号:
  “Logger :: pComp”,引自:   Logger.o中的Logger :: setComp(MyComp *)

2 个答案:

答案 0 :(得分:4)

您忘了添加

  MyComp* Logger::pComp;

到你的cpp文件(在课堂教学之外)。

答案 1 :(得分:0)

为了初始化静态数据成员,我们必须在类之外包含一个正式的定义。