目录结构

单例模式的重定义问题_重定义

 

 

 cmake将五个文件一起编译

在DataTransmission.h中,定义了单例模式的class SingletonDataTransfer

单例模式的重定义问题_重定义_02

 

 如果在头文件中初始化单例模式中的指针m_pInstance,或出现重定义问题,因为cmake会编译(DataTransmission.h  DataTransmission.cc)  (DataTransmission.h  main.cc)然后将二者链接起来

所以会出现这个错误

单例模式的重定义问题_头文件_03

 

 解决方法是把DataTransmission.cc里的代码全部写到DataTransmission.h中来,但是这样做并不好

所以第二种解决方法是吧静态私有成员变量的定义放在头文件之外,这样就不会报重定义的错误了

无情的摸鱼机器