在 C++ 中是否可以有两个类,我们称它们为A
and B
,这样A
有一个f
返回 class 对象的成员函数B
,并且B
有一个g
返回 class 对象的成员函数A
?
(下面的文字只是为了表明我已经“完成了我的作业”。)
问题只是如何编写这些函数的签名,当第一个定义的类中的函数将具有不完整的返回类型时。前向声明在这里没有帮助,因为对象是按值返回的。
是的,我知道所有的解决方法(朋友全局函数,通过指针返回,...),但我只想知道上面的接口是否可以在 C++ 中实现。举个例子,假设我试图在 class 上重载 operator()A
以 return B
,并在 class上重载B
return A
。由于我是重载运算符,所以我必须按值返回(好吧,除非我想要一个动态分配地狱:),并且 () 必须作为成员函数重载,所以我不能使用全局朋友。