在 C++ 中应该按啥顺序声明类? [关闭]

Posted

技术标签:

【中文标题】在 C++ 中应该按啥顺序声明类? [关闭]【英文标题】:In which order should classes be declared in C++? [closed]在 C++ 中应该按什么顺序声明类? [关闭] 【发布时间】:2009-04-16 17:39:32 【问题描述】:

假设我得到了这个 C++ 代码:

class class1
    class2 *x;


class class2
    class1 *x;

编译器会在第 2 行给出错误,因为它找不到 class2,如果我切换了类的顺序,也是一样。我该如何解决?

【问题讨论】:

【参考方案1】:

两件事 - 一,你需要在类声明后使用分号:

class class1
    class2 *x;
;

class class2
    class1 *x;
;

二,你可以在类的定义前面创建一个声明。这告诉编译器这个类存在,你还没有定义它。在这种情况下,在class1的定义前面放一个class2声明:

class class2 ;

class class1
    class2 *x;
;

class class2
    class1 *x;
;

【讨论】:

【参考方案2】:

参考Forward declarations

【讨论】:

【参考方案3】:

先声明class2:

class class2;
class class1
    class2 *x;
;

class class2
    class1 *x;
;

【讨论】:

以上是关于在 C++ 中应该按啥顺序声明类? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

C ++标头顺序[关闭]

我们应该按啥顺序调整神经网络中的超参数?

应该按啥顺序添加浮点数以获得最精确的结果?

您应该按啥顺序将一组已知键插入 B-Tree 以获得最小高度?

生成一个派生类对象时,调用基类和派生类构造函数按啥次序

BMP文件中图像数据是按啥顺序存放的?