C++ - 克隆基类

nam*_*ame 1 c++ clone

我有类似的东西:

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更改为很多,而它是由其他人编写的.

谢谢

P S*_*ved 5

您不能自动从基础类创建派生类.你可以反之亦然,然后从派生中创建一个基类,这可能会让你感到困惑.

要做你想做的事,你应该添加适当的构造函数,Foo并思考如何在Base实例中创建缺少的信息以构成一个功能齐全的Foo实例.

构造函数可能如下所示:

Foo(Base const& b) : Base(b)
{ /* construct info specific to Foo (absent in Bar) */ }
Run Code Online (Sandbox Code Playgroud)