
80
|
3 章 現代の C++ への移行
れます。このため、古いコードで override という名前を使用していても、C++11 用に修正する必要
はありません。
class Warning { // potential legacy class from C++98
public: C++98 で使用していた可能性がある古いクラス
…
void override(); // legal in both C++98 and C++11
… // (with the same meaning)
}; C++98 でも C++11 でも正当(意味も変わらない)
override についての話は以上ですが、メンバ関数の参照修飾子についてはまだあります。詳細は
後述すると述べましたが、今がその時です。
実引数に左辺値のみをとる関数を記述する場合、非 const な左辺値参照仮引数とするのが通例
です。
void doSomething(Widget& w); // accepts only lvalue Widgets
左辺値の Widget のみをとる
また、実引数に右辺値のみをとる関数を記述する場合、右辺値参照仮引数とするのが通例です。
void doSomething(Widget&& w); // accepts only rvalue Widgets
右辺値の Widget のみをとる
メンバ関数の参照修飾子は、そのメンバ関数を実行するオブジェクト、すなわち *this を同様に
区別するためのものです。メンバ ...