用类链接的C ++方法

时间:2013-09-10 17:13:18

标签: c++ oop c++11 method-chaining

我正在尝试进行方法链接,但是,我没有使用“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();

1 个答案:

答案 0 :(得分:1)

您更新的问题是非法的,因为Bar::Options()会返回对Bar的引用,而您无法提供将Bar转换为Foo对象的方式。< / p>