2015-07-22 31 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