我正在尝试进行方法链接,但是,我没有使用“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();
答案 0 :(得分:1)
您更新的问题是非法的,因为Bar::Options()
会返回对Bar
的引用,而您无法提供将Bar
转换为Foo
对象的方式。< / p>