自己遇到该问题的经过:
1、QT项目中已有一个类CModuleFile,类B继承类CModuleFile。(此时可以正常编译)。
2、重命名类CModuleFile为类CModuleFileDeal。(此时可以正常编译)。
3、新建一个类CModuleFile。(编译不正常)
问题原因:
步骤2中重命名类A时可能操作有误,导致重命名不彻底。导致类CModuleFileDeal和类CModuleFile头文件中的预处理块中内容一致。如下:
类CModuleFileDeal头文件中理想的预处理块内容:
#ifndef CModuleFileDeal_H
#define CModuleFileDeal_H
类CModuleFileDeal与类CModuleFile头文件中实际的预处理块内容:
#ifndef CMODULEFILE_H
#define CMODULEFILE_H
解决办法:
将类CModuleFileDeal头文件中的预处理块内容替换为预期内容即可。