値渡しと参照渡しを正しく理解していることを確認したいと思います。++
特に、オブジェクトのインクリメント演算子のプレフィックス/ポストフィックスバージョンを調べています。
次のクラスがあるとしましょうX
:
class X{
private:
int i;
public:
X(){i=0;}
X& operator ++ (){ ++i; return *this; } //prefix increment
X operator ++ (int unused){ //postfix increment
X ret(*this);
i++;
return ret;
}
operator int(){ return i; } //int cast
};
まず、プレフィックス/ポストフィックスインクリメント演算子を適切に実装しましたか?
第二に、プレフィックス演算子と比較して、ポストフィックス演算子はどのくらいメモリ効率が良いですか?具体的X
には、演算子の各バージョンを使用すると、いくつのオブジェクトコピーが作成されますか?
参照によるリターンと値によるリターンで何が起こるかを正確に説明すると、理解に役立つ場合があります。
編集:たとえば、次のコードで...
X a;
X b=a++;
... aとbはエイリアスになりましたか?