如何在基類中實現操作符重載,以獲得派生類對象的基類部分?我該如何在基類中實現對派生類對象的基類部分的操作符重載?
請參見本文的示例代碼並實現基類部分來實現對派生類對象*操作
class base {
int x;
public:
};
class der : public base {
int y;
public:
const der operator*(const der& rh) {
der d;
d.y = y * rh.y;
return d;
}
};
@MikeSeymour:對我來說,'operator *'實現似乎只改變了在函數內部構造的單個值'd'。它不會修改'rh'和'* this'。 – 2012-04-19 10:25:53
@FrerichRaabe:你說的對,我誤解了;我只是看到它不是'const',而是掩蓋了其餘部分。這一定早上過早。 – 2012-04-19 10:26:33
'const der operator *(const der&rh){...}'應該讀取'der operator *(const der&rh)const {...}':您不希望結果是const,而是您的對象正在研究(*)。 – kay 2012-04-19 10:45:15