【发布时间】:2013-09-10 17:13:17
【问题描述】:
我正在尝试进行方法链接,但是,我想要一个类的构造函数(从基类继承),而不是使用“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() {
}
};
然后在 main:
Foo F = Foo().Options();
【问题讨论】:
-
你为什么要这样做?对
Foo()的调用已经调用Bar()。 -
@juanchopanza 很抱歉造成混乱,请查看我的编辑,这就是我想做的。这可能吗?
-
您可以使用
Foo F; F.Options();或Foo().Options()- 但不能同时使用。 -
@MatsPetersson 我真的希望/需要将其作为方法链。嗯。有没有办法做到这一点?
-
你想要完成什么?不是链接的东西,而是潜在的问题。事实上,这是一个 X-Y 问题。
标签: c++ oop c++11 method-chaining