meryngii.neta

今日も新たな"ネタ"を求めて。

演算子のオーバーライド

前に演算子をオーバーライドしようとして失敗した記憶があるのだが、試しにやってみたらできた。

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;
};

こんなのできなかったはずなのに…。