4
是否有可能过载=
操作员而不完全重新实现?过载分配操作员保留基本功能
我想指定它的特殊行为 - 如果输入对象有一些特殊的值 - >运算符应该做一些额外的工作。如果没有 - 它应该作为基本的赋值操作符。
喜欢的东西
operator=(input)
if (input == specialValue)
setParam(this->true)
base()
是否有可能过载=
操作员而不完全重新实现?过载分配操作员保留基本功能
我想指定它的特殊行为 - 如果输入对象有一些特殊的值 - >运算符应该做一些额外的工作。如果没有 - 它应该作为基本的赋值操作符。
喜欢的东西
operator=(input)
if (input == specialValue)
setParam(this->true)
base()
您可以通过使用做,如果其他声明,在其他部分指定的基本功能,并在如果或否则如果一部分,如果指定条件条件为真根据该值执行操作返回一些特定值。
operator=(input)
if (input == specialValue)
setParam(this->true)
esle
setParam(input)
尽管如此,他并不想重新实现整个事情,这正是你在'else'子句中所做的。 – hlt
只要你重载它,基本赋值运算符就不见了。 – Nishant
好的。那么接下来的问题是 - 是否有可能只在基类中重载它,而不需要在继承类中的任何地方实现它? – lapots
在基类中给出一个默认实现,并在派生类中实现一个超载实现。 – acraig5075