【发布时间】:2011-11-17 11:02:33
【问题描述】:
我可以声明一个指向尚未定义的类的指针,如下所示:
class A ;
A* p ;
但是如何为嵌套类执行此操作?我想这样做:
class A ;
class A::B ; // error: 'B' in class 'A' does not name a type
A::B* p ;
但它不能编译(使用 g++ 4.5.2)。有什么办法可以做到吗?
【问题讨论】:
-
如果您需要,请不要嵌套 B。 (您可以使用命名空间对类进行分组。嵌套 - 至少在 C++03 中 - 不会增加其他价值。)
-
在定义类
A之前是不可能的。您必须重新设计,以便在定义包含嵌套类的类之前不使用嵌套类。
标签: c++