0

メソッドチェーンを実行しようとしていますが、「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();

4

1 に答える 1

1

Bar::Options()a への参照を返し、a をオブジェクトBarに変換する方法を提供していないため、更新された質問は違法です。BarFoo

于 2013-09-10T17:34:40.947 に答える