当前位置:  开发笔记 > 编程语言 > 正文

包含标题的一些规则是什么?

如何解决《包含标题的一些规则是什么?》经验,为你挑选了1个好方法。

我的程序越大,我就会遇到问题.例如,我收到以下错误:

In file included from WidgetText.h:8,
                 from LCDText.h:17,
                 from WidgetText.cpp:13:
Generic.h:21: error: expected class-name before ',' token

以下是这些行:

#include "Generic.h" // WidgetText.h:8

#include "WidgetText.h" // LCDText.h:17

#include "LCDText.h" // WidgetText.cpp:13

class Generic: public virtual LCDText, public CFG, public virtual Evaluator { // Generic.h:21

以下是各种头文件的内容:

//Generic.h
#include "CFG.h"
#include "Evaluator.h"
#include "LCDText.h"
#include "Widget.h"

//WidgetText.h
#include "Generic.h"
#include "Property.h"
#include "Widget.h"

//LCDText.h
class Generic;
#include "LCDBase.h"
#include "WidgetText.h"

这并没有提供太多; 我知道.我不确定还包括什么.每个标头定义一个以其标头命名的类,因此LCDText.h有一个名为LCDText的类.

在LCDText.h中声明类'Generic'的一行必须放在那里,因为早期的问题与此类似.我假设当前的问题有一个类似的解决方案,但到目前为止我找不到它.



1> fbrereto..:

你有一个循环依赖:Generic.h包括LCDText.h,其中包括WidgetText.h,其中包括Generic.h; 错误源于这个基本问题.如果您可以重新设计标题以消除此循环,则错误可能会在重构中解决,或者问题将变得比现在更加明显.


这也称为"循环依赖"(如果您想要搜索有关此问题的更多信息).
推荐阅读
云聪京初瑞子_617
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有