C++&引用;“Foo类回程杆”;及;分类栏返回Foo“;可能的 是否可以定义C++类FO和Bar S.T. class Foo { Bar makeBar(); }; class Bar { Foo makeFoo(); };
?C++&引用;“Foo类回程杆”;及;分类栏返回Foo“;可能的 是否可以定义C++类FO和Bar S.T. class Foo { Bar makeBar(); }; class Bar { Foo makeFoo(); };,c++,C++,? 谢谢 是的。你可以用一只手来做 例如,在Foo.h中添加: class Bar; class Foo { Bar makeBar(); }; 对。你可以用一只手来做 例如,在Foo.h中添加: class Bar; class Foo { Bar makeBar(); }; 是的,你只需要在顶部提出声明 class Foo; class Bar; class Foo { Bar makeBar(); }; class Bar { Foo makeFoo()
谢谢 是的。你可以用一只手来做 例如,在
Foo.h
中添加:
class Bar;
class Foo {
Bar makeBar();
};
对。你可以用一只手来做 例如,在
Foo.h
中添加:
class Bar;
class Foo {
Bar makeBar();
};
是的,你只需要在顶部提出声明
class Foo;
class Bar;
class Foo {
Bar makeBar();
};
class Bar {
Foo makeFoo();
};
是的,你只需要在顶部提出声明
class Foo;
class Bar;
class Foo {
Bar makeBar();
};
class Bar {
Foo makeFoo();
};
编译器如何知道Foo::makeBar()处的Bar有多大?在这一点上它不必知道。它只需要知道有可能返回一个。在这一点上,它然后构造Foo和Bar类,现在它知道它们有多大,并且-现在-当你调用这些方法时,它拥有它所需要的一切。很酷,不是为了函数声明@anon:它不需要知道,只要这仅仅是函数的声明。声明中的不完整类型是可以的。一旦开始定义函数,类型就必须完整。在这种情况下,这会强制执行类外函数定义。它不需要知道在声明时返回值有多大。编译器如何知道Foo::makeBar()处的Bar有多大?此时不必知道。它只需要知道有可能返回一个。在这一点上,它然后构造Foo和Bar类,现在它知道它们有多大,并且-现在-当你调用这些方法时,它拥有它所需要的一切。很酷,不是为了函数声明@anon:它不需要知道,只要这仅仅是函数的声明。声明中的不完整类型是可以的。一旦开始定义函数,类型就必须完整。在这种情况下,这会强制执行类外函数定义。它不需要知道在声明时返回值有多大。