メソッドチェーンを実行しようとしていますが、「Foo」のメソッドを使用する代わりに、クラスのコンストラクターが必要です(基本クラスから継承されます):
class Bar {
public:
Bar() {
std::cout << "This is bar";
}
};
class Foo : public Bar {
public:
Foo() {
cout << "This is foo";
}
};
したがって、私のメインは次のようになります。
Foo f = Foo().Bar();
C++/C++11 でこれができないのはなぜですか? また、この標準を統合する方法はありますか、または「Foo」でコンストラクターを「Bar」に呼び出すメソッドを作成する必要がありますか?
編集:
class Bar {
public:
Bar() {
}
Bar& Options() {
cout << "sf";
return *this;
}
};
class Foo : public Bar {
public:
Foo() {
}
};
そして主に:
Foo F = Foo().Options();