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 的引用Bar并且您没有提供将 a 转换BarFoo对象的方法。

于 2013-09-10T17:34:40.947 回答