是否可以进行相互递归的类?

Ami*_*mar 5 c++ recursion class declaration definition

我读了如何使用前向声明来使其工作.

class A
{
    public:
    B *objB;

    void foo(){}
}

class B
{
    public:
    A *objA;

    void foo(){}
}
Run Code Online (Sandbox Code Playgroud)

只想确认这种设计是否可行?

class A
{
    public:
    B objB;

    void foo(){}
}

class B
{
    public:
    A objA;

    void foo(){}
}
Run Code Online (Sandbox Code Playgroud)

PS:如果有人也可以解释为什么/为什么不能在逻辑上按类来解释,而不仅仅是语言方面,比如引用一些例子.这究竟是什么意味着课程?

Oli*_*rth 11

第二个例子是不可能的.它表示A为a 分配的空间包含a 的空间B,而a 又包含空间A等.这将需要无限量的内存,并且需要无限的时间来构建.