Vek*_*eky 4 c++ return-value member-functions incomplete-type
是否有可能在C++中有两个班,让我们称他们A和B,这样A有一个成员函数f返回类的一个对象B,并B有一个成员函数g返回类的对象A?
(下面的文字只是为了表明我"完成了我的作业".)
问题是当第一个定义的类中的一个具有不完整的返回类型时,如何编写这些函数的签名.前向声明在这里没有帮助,因为对象是按值返回的.
是的,我知道所有的变通方法(朋友全局函数,通过指针返回......),但我想知道上面的接口是否可以用C++实现.为了举个例子,假设我试图在类上重载operator()A以返回B,并在类B上返回A.由于我正在重载运算符,我必须按值返回(好吧,除非我想要动态分配地狱:),并且()必须作为成员函数重载,所以我不能使用全局朋友.
是,实现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)