据我所知,在定义具有对象返回类型的函数时,该类仅处于其前向声明状态,如下所示:
class A;
// 前向声明,将A设置为不完整类型
A foo(){...}
//error: A 是一个不完整的类型,我知道当它具有指针的返回类型或对该对象的引用时它可以正常工作。
但是当我定义一个返回类型作为其类的方法时:
class B{
public:
B foo(){...}
}
它工作得很好。
我认为在类的定义中定义方法时,类仍然是不完整的类型。所以我认为它会提示类似于前者的错误,但它没有。有谁知道为什么?
在在这里寻求帮助之前,我已经搜索了很长时间。(我不擅长英语,所以我的描述可能会让你感到困惑。抱歉。)