【发布时间】:2017-03-25 00:29:01
【问题描述】:
class A;
class B;
class A
{
public:
A(B * b) : b(b)
{
b->foo(this);
}
private:
B * b;
};
class B
{
public:
void foo(A *)
{}
};
编译这段代码给了我
incomplete-type.hpp: In constructor ‘A::A(B*)’:
incomplete-type.hpp:9:4: error: invalid use of incomplete type ‘class B’
b->foo(this);
^~
但我确实需要这些类通过指针相互使用。我该怎么做?
【问题讨论】:
-
在类定义之外和两个类都被定义之后定义构造函数。
标签: c++ class pointers circular-dependency incomplete-type