2006年4月5日水曜日

こんな事も知らずにPGしてたのかil||li _| ̄|○ il||li

突然、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 件のコメント:

コメントを投稿