我已经查看了很多不同的例子和解释,但没有一个真正回答了我所寻找的。我有三个类,每个类都有一个名为connect的方法:
class foo { ... }
void foo::connect(bar br) { ... }
class bar { ... }
bar& bar::connect(baz bz) { ... }
class baz { ... }
baz& baz::connect() { ... }
在我的主类中,我像这样“连接”它们:
foo.connect(bar);
bar.connect(baz);
baz.connect();
或者:
foo.connect( bar.connect( baz.connect() ) );
我知道这个解释比较简略,如果需要的话,我可以更好地解释一下。
因此,我尝试重载运算符'>>',以便在主函数中获得以下内容:
foo >> bar >> baz;
对于第一个运营商,它可以正常工作,所以如果我只是按照以下步骤操作,它就可以正常工作:
foo >> bar.connect(baz.connect);
但是,当我设置另一个'>>'操作符时,g++会返回以下错误:
error: no match for ‘operator>>’ in ‘operator>>((* & foo), (* & bar)) >> baz.baz::connect()’
我认为我没有正确地重载了运算符'>>':
bar& operator>> (bar &br, baz &bz)
{
...
}
感谢您的帮助 :)
>>
。 - user1781290