20240815 C++头文件编译环问题

问题描述
https://stackoverflow.com/questions/34102953/how-to-solve-expected-class-name-before-in-qt-c
解决问题方式
你有一个循环依赖项: materials.h
包括 fictionsection.h
和 fictionsection.h
包括 materials.h
。
由于头文件具有防止多次包含的例程 ( #ifndef FICTIONSECTION_H
和 #ifndef MATERIALS_H
,这很好),当 material.h
包括 fictionsection.h
,这个包括 material.h
同样,但由于您的多重包含保护,这绝对没有效果…结果是 fictionsection.h
没有得到 Materials
最后声明并拒绝声明 FictionSection
从中衍生出来!
您需要使用前向声明来解决此问题:
在
materials.h
取代:
1由
1 class FictionSection;==并添加
#include "fictionsection.h"
在materials.cpp
===转发声明是解决此问题的常见做法。但是,即使没有出现此问题,前向声明仍然是一种很好的做法,因为它将加快编译速度。
评论
评论插件加载失败
正在加载评论插件