单例模式的重定义问题

目录结构

 

 

 cmake将五个文件一起编译

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

 

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

所以会出现这个错误

 

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

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

posted @ 2022-09-01 14:06  Wangtn  阅读(96)  评论(0编辑  收藏  举报