问题是这样的,嵌入类挺好的,可以有效表明类之间的从属关系,我们常常这样
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;
};
标签:嵌入,Attr,对象,c++,private,class,类中,定义
From: https://www.cnblogs.com/windtail/p/17342662.html