演算子のオーバーライド
前に演算子をオーバーライドしようとして失敗した記憶があるのだが、試しにやってみたらできた。
class a { public: virtual a& operator += (int) { } }; class b : public a { public: b() : sum(0) { } virtual b& operator += (int x) { sum += x; return *this; } private: int sum; };
こんなのできなかったはずなのに…。