【发布时间】:2012-05-04 09:48:55
【问题描述】:
我想让 A 班成为 B 班的朋友。
class B;
class A{
public:
void show(const B&); // ##1## but this one works fine
B ob;// error incomplete type
};
class B{
public:
int b;
B():b(1){}
friend class A;
};
所以我的问题是为什么它是不完整的类型?我认为当我执行class B 时,它就像一个函数原型,它告诉编译器在代码中的某处有一个定义。
也在上面的代码中 ##1## 为什么这是可能的?
【问题讨论】:
-
相反,您可以将成员作为指向 B (B* ob) 的指针
标签: c++ friend forward-declaration