分配给派生类的基本组件

时间:2015-11-24 16:40:43

标签: c++ inheritance

如何从派生类中将基类实例分配给派生类的基类“member”?

class A{
public:
   A();
   A(const A& i);
   A &operator =(const A& i);
   ~A();
};

class B: public A{
public:
  void f(){
    A a;
    // calc(a);
    *this = a; // <- how?
  }
  void x(){};
private:
  int i;
};

2 个答案:

答案 0 :(得分:1)

最简单的解决方案是使用dynamic_cast

dynamic_cast<A &>(*this) = a;

答案 1 :(得分:1)

另一个显而易见的方法(我怎么能错过这个?)是直接调用基类的赋值运算符:

A::operator=(a);