2011-10-28 21 views
-4

私はC++のconstメンバ関数

前のコードを不可解された構文エラーがありますコンブ

void process(const string& str) const {}; 

今のところ a.process("abcd"); strがconst char [5]であるとコンパイルエラーが発生する...

const追加が構文エラーにどのように影響するか。私はconst(この文脈で)メンバー変数が変更されないことを意味しましたか?

これについての考えは?

+1

問題を示すコンパイル可能な投稿をしてください。それが原因であるとは言えませんが、あなたが見ているものを推測することさえ困難です。 –

+1

あなたはここで言うこととは異なる何かをしています。const関数には問題はありません:http://ideone.com/0RXZl –

+0

「コンパイルエラー」と表示されています。 *コンパイラエラーとは何か、それが何行目を指しているのか。 – abelenky

答えて

2

constをメソッド宣言の末尾に追加すると、strパラメータのセマンティクスは変更されませんでした。何かが起こっているか、コンパイラにバグがあります。

const A a; 
a.process("abcd"); 

それは、constのcharのあなたの配列とは何の関係もありません:あなたのメンバ関数へのconst修飾子を追加

0

うまくいくはずです。その結果、結果に影響を与える他の変更も加えられました。

0

はあなたのあなたの関数を呼び出すと、constの可能なオブジェクトがあることを意味します。

関連する問題