20240815 C++头文件编译环问题
明昧 Lv7

问题描述

https://stackoverflow.com/questions/34102953/how-to-solve-expected-class-name-before-in-qt-c

解决问题方式

你有一个循环依赖项: materials.h 包括 fictionsection.hfictionsection.h 包括 materials.h

由于头文件具有防止多次包含的例程 ( #ifndef FICTIONSECTION_H#ifndef MATERIALS_H,这很好),当 material.h 包括 fictionsection.h,这个包括 material.h 同样,但由于您的多重包含保护,这绝对没有效果…结果是 fictionsection.h 没有得到 Materials 最后声明并拒绝声明 FictionSection 从中衍生出来!

您需要使用前向声明来解决此问题:

materials.h取代:

1
#include "fictionsection.h"

1
class FictionSection;

==并添加 #include "fictionsection.h"materials.cpp ===

转发声明是解决此问题的常见做法。但是,即使没有出现此问题,前向声明仍然是一种很好的做法,因为它将加快编译速度。

 评论
评论插件加载失败
正在加载评论插件
由 Hexo 驱动 & 主题 Keep
访客数 访问量