在 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++ 中应该按啥顺序声明类? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章