c++在嵌入类中定义上层类的实例
问题是这样的,嵌入类挺好的,可以有效表明类之间的从属关系,我们常常这样
class A {
public:
class Attr {
private:
A& mA;
};
};
这样是没有问题的,因为A此时还没有完全定义,使用引用或指针都是可以的。
但是有些时候,如果A
对象是一个临时对象,但我们想让Attr
对象可以独立于A
对象存在,这样Attr
对象直接持有A
对象就可以了。但是把上面的A&
,改为A
是编译不过的。
解决方案来了,原来嵌入类也可以前向声明,然后定义在外面,这样
class A {
public:
class Attr;
};
class A::Attr {
private:
A mA;
};
------------------------------------------------------------
本文由WindTaiL在cnblogs中发布,转载请注明出处
本文由WindTaiL在cnblogs中发布,转载请注明出处