我有类似的东西:
Class Foo : Base {.."my stuph" ..};
int main() {
Base *b = new Base;
Foo f (b); <== **error** "invalid conversion from Base to Foo."
..
}
Run Code Online (Sandbox Code Playgroud)
我怎样才能将b克隆到f?
在"我的stuph"中,我有在Foo和Base之间进行锻炼的功能.
我不能将Base更改为很多,而它是由其他人编写的.
谢谢
您不能自动从基础类创建派生类.你可以反之亦然,然后从派生中创建一个基类,这可能会让你感到困惑.
要做你想做的事,你应该添加适当的构造函数,Foo并思考如何在Base实例中创建缺少的信息以构成一个功能齐全的Foo实例.
构造函数可能如下所示:
Foo(Base const& b) : Base(b)
{ /* construct info specific to Foo (absent in Bar) */ }
Run Code Online (Sandbox Code Playgroud)