我遇到了以下问题,这向我证明我对 C++ 的工作原理知之甚少。
我使用带有纯虚函数的基类
class Base
...
和类型的派生类
class Derived : public Base{
private:
Foo* f1;
...
两者都实现了赋值运算符。除其他外,Derived 的赋值运算符复制 f1 中的数据。在我的代码中,我创建了 Derived 类的两个新实例
Base* d1 = new Derived();
Base* d2 = new Derived();
如果我现在调用赋值运算符
*d1 = *d2;
不调用Derived的赋值运算符,不复制f1中的数据!只有当我这样做时它才有效
*dynamic_cast<Derived*>(d1) = *dynamic_cast<Derived*>(d2);
有人可以解释为什么赋值运算符没有重载吗?
谢谢!