如何在基类中实现操作符重载,以获得派生类对象的基类部分?我该如何在基类中实现对派生类对象的基类部分的操作符重载?
请参见本文的示例代码并实现基类部分来实现对派生类对象*操作
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