突然、C++の話になりますが
int func1( const char* pChar );
int func2( char* const pChar );
int func3( char* pChar ) const;
この3つの関数の違い、説明できます?
俺は今日まで説明できませんでした…PG暦4年だと言うのに(;つД`)
で、ちょっと調べてみました。
func1 : pCharが指し示す内容を変更できない。( const ポインタ )
func2 : pCharが指し示す内容は変更できるが、pChar自体は変更できない。
func3 : const 関数として、引数に定数を使用できる。( func3 内でオブジェクトを変化させない )
でも、実際は
int func4( const Struct& tStruct );
のように、参照で使われる事が多いみたい。( const 引数 )
今までビルドエラーになったら、「こっちを const にすればエラーにならないや」
なんていい加減な方法で直してたけども、これからはちゃんと考えて直すようにしよう…。
本当に今更な話でした。他にもいい加減に使ってるものいっぱいあるんだろうな~。
#pragmaとか(゚ー゚;Aアセアセ
0 件のコメント:
コメントを投稿