如果我需要在派生類中使用它們,我是否需要重新定義所有具有派生類型的重載運算符?在派生類中重載運算符
下面的代碼編譯好:
class Point {
public:
Point(int X = 0, int Y = 0):x(X), y(Y) {}
virtual ~Point() {}
Point operator +(Point &rhs) {
return Point(x + rhs.x, y + rhs.y);
}
protected:
int x, y;
};
class Vector : public Point {
public:
Vector(int X, int Y) : Point(X, Y) {}
~Vector() {}
Vector operator +(Vector &rhs) {
return Vector(x + rhs.x, y + rhs.y);
}
};
int main()
{
Vector v1(1, 2);
Vector v2(3, 2);
Vector v3 = v2 + v1;
}
但是從我讀過,
C++入門第四版。第15.5.3節。
如果一個派生類希望通過它的類型,使所有 提供 重載版本,那麼它必須是 重新定義所有的人或沒有。
報價單「none of them
」的部分是否有意義?
嘿,你認爲可以引用其他人的內容嗎?似乎是版權問題給我。 – 2011-04-15 15:41:07
@Ernest:我沒有創建C++語言,所以我不得不引用一些東西。看到類似的元問題:http://meta.stackexchange.com/questions/46448/answers-with-external-references-should-they-not-be-added-to-answers-and-perhap – 2011-04-15 15:59:18