C++ 类

来源:百度知道 编辑:UC知道 时间:2024/06/07 12:06:32
类 a 里有 类 b 的成员,类 b 里有 类 a 的成员
代码应该如何写

extern class b;
class a
{
public:
b b1;
};

class b
{
public:
a a1;
};

这样写编译通不过,应该如何写?
谢谢!

class b;
class a
{
public:
b *b1;
};

class b
{
public:
a *a1;
};

考虑一下,
class a需要知道class b的大小才能确定自身的大小,
class b需要知道class a的大小才能确定自身的大小。
陷入循环,无法得知自身的大小,无法直接引用。
采用指针可以解决。指针大小固定为4位。

如果两个类会互相引用,应该考虑下这样的设计是否合理。有没有哪一部分代码可以剥离出来。