C ++“class Foo return Bar”和“class Bar return Foo”可能吗?

时间:2010-02-24 22:44:36

标签: c++

是否可以定义C ++类Foo和Bar s.t。

class Foo {
  Bar makeBar();
};

class Bar {
  Foo makeFoo();
};

谢谢!

2 个答案:

答案 0 :(得分:8)

是的,你只需要在顶部提出声明。

class Foo;
class Bar;

class Foo {
  Bar makeBar();
};

class Bar {
  Foo makeFoo();
};

答案 1 :(得分:2)

是。您可以使用forward declaration

执行此操作

例如,在Foo.h中,添加:

class Bar;

class Foo {
    Bar makeBar();
};