2010年4月28日水曜日

C++のconst T&(const参照)について

今日はC++のconst T& について書きます。
これはC++特有(たぶん)の型宣言で、知っていれば使用頻度はかなり高いと思っています。
私の場合editする必要がない参照変数や、関数の引数は極力const T& を使用するようにしています。
さて、const T& がどういったものかといいますと、まずは次のコードをみてください。
CHoge& hoge = 1; // ①
const CHoge& hoge = 1; // ②
このコードをコンパイルしたときはコンパイルエラーとなり、はコンパイルエラーとはなりません、なぜかというと
CHoge temp = CHoge(1);
const CHoge& hoge = temp;
このように一次変数への参照となるからです。また、一次変数への代入の際はコンストラクタが呼び出されるためコンストラクタの引数として取りえる型ならなんでもokなのです。
どうでしょう?便利ですよね?
最後に注意点が有ります、それは暗黙的に一次変数が生成されるためプログラマの意図しない動作となる可能性があるということです。
このことを頭の隅に置いておけばじゃんじゃん使ってよいと思います。

0 件のコメント:

コメントを投稿