【发布时间】:2015-07-22 06:25:32
【问题描述】:
是否可以在不完全重新实现的情况下重载= 运算符?
我想为它指定特殊行为 - 如果输入对象有一些特殊值 -> 运算符应该做一些额外的工作。如果不是 - 它应该作为基本的赋值运算符。
类似
operator=(input)
if (input == specialValue)
setParam(this->true)
base()
【问题讨论】:
-
一旦你重载它,基本的赋值运算符就没了。
-
好的。那么下一个问题是——是否可以只在基类中重载,而不需要在继承类中处处实现?
-
在基类中给出默认实现,在派生类中给出重载实现。
-
不太清楚,你的意思。在类型上重载 depebds,当然成员函数的所有重载都由派生类型继承。
-
派生类中需要有赋值运算符,如果没有,则提供默认的赋值运算符,然后调用基类的赋值运算符。这些链接可以帮助你stackoverflow.com/questions/3882186/…stackoverflow.com/questions/9161512/…
标签: c++