2015-07-22 69 views
4

是否有可能过载=操作员而不完全重新实现?过载分配操作员保留基本功能

我想指定它的特殊行为 - 如果输入对象有一些特殊的值 - >运算符应该做一些额外的工作。如果没有 - 它应该作为基本的赋值操作符。

喜欢的东西

operator=(input) 
    if (input == specialValue) 
     setParam(this->true) 
    base() 
+1

只要你重载它,基本赋值运算符就不见了。 – Nishant

+0

好的。那么接下来的问题是 - 是否有可能只在基类中重载它,而不需要在继承类中的任何地方实现它? – lapots

+0

在基类中给出一个默认实现,并在派生类中实现一个超载实现。 – acraig5075

回答

0

您可以通过使用做,如果其他声明,在其他部分指定的基本功能,并在如果否则如果一部分,如果指定条件条件为真根据该值执行操作返回一些特定值。

operator=(input) 
     if (input == specialValue) 
      setParam(this->true) 
     esle 
      setParam(input) 
+0

尽管如此,他并不想重新实现整个事情,这正是你在'else'子句中所做的。 – hlt