適切なconstの使い方(1)

関数の仮引数編。元ネタはExceptional C++。

■値渡しには不要で、ポインタ渡し、参照渡しには必要。

void Func(int nVal); //値渡し
void Func(const char *szStr); // ポインタ渡し
void Func(const T& cls); //参照渡し

特に異議無い。しかし、私の中では例外あり。

Win32プログラミングでバイト列を読み込む時だ。
void Func (const BYTE* pbDoc, const DWORD cbDoc);
constを対照にしておくだけ。
 
Win32APIでは「const BYTE*」を「LPBYTE」に「typedef」して利用する為、自然に見えるが、constでないとうっかり変更してしまう(呼び出し元に影響はないが)。文字列には「LPCSTR」が存在するので問題なし。

Leave a Reply

最初のコメントを頂けますか?

更新通知を受け取る »
avatar
wpDiscuz