相互返回类型的成员函数(C++)

Vek*_*eky 4 c++ return-value member-functions incomplete-type

是否有可能在C++中有两个班,让我们称他们AB,这样A有一个成员函数f返回类的一个对象B,并B有一个成员函数g返回类的对象A

(下面的文字只是为了表明我"完成了我的作业".)

问题是当第一个定义的类中的一个具有不完整的返回类型时,如何编写这些函数的签名.前向声明在这里没有帮助,因为对象是按值返回的.

是的,我知道所有的变通方法(朋友全局函数,通过指针返回......),但我想知道上面的接口是否可以用C++实现.为了举个例子,假设我试图在类上重载operator()A以返回B,并在类B上返回A.由于我正在重载运算符,我必须按值返回(好吧,除非我想要动态分配地狱:),并且()必须作为成员函数重载,所以我不能使用全局朋友.

cpx*_*cpx 7

是,实现class A声明后的函数定义class B

class B;

class A
{
    B f();
};

class B
{
    A g() { A a; return a; }
};

B A::f(){ B b; return b; }
Run Code Online (Sandbox Code Playgroud)

  • 函数原型/声明不需要完全定义的类型?很高兴知道! (2认同)