c++ - 分配给派生类的基组件

标签 c++ inheritance

如何将基类实例分配给派生类的派生类的基类“成员”?

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;
};

最佳答案

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

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

关于c++ - 分配给派生类的基组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33899165/

相关文章:

java - 如何创建子类,使其属性值不会被父类覆盖?

c++ - 如何创建一个不能被其他类继承的类?

用于类型和非类型模板的 c++ auto

java - 如何将父对象列表添加到子对象列表

c++ - VS2008 C++好像不能继承const重载方法

java - 确保一个对象是从java中的另一个对象继承的

c++函数采用具有默认函数的函数指针

c++ - 如何比较自定义类的 std::variant?

c++ - 跨共享库边界分配和释放内存

css - 覆盖没有默认值的 CSS 属性