前のコードを不可解された構文エラーがありますコンブ
void process(const string& str) const {};
今のところ a.process("abcd");
strがconst char [5]であるとコンパイルエラーが発生する...
const追加が構文エラーにどのように影響するか。私はconst(この文脈で)メンバー変数が変更されないことを意味しましたか?
これについての考えは?
前のコードを不可解された構文エラーがありますコンブ
void process(const string& str) const {};
今のところ a.process("abcd");
strがconst char [5]であるとコンパイルエラーが発生する...
const追加が構文エラーにどのように影響するか。私はconst(この文脈で)メンバー変数が変更されないことを意味しましたか?
これについての考えは?
const
をメソッド宣言の末尾に追加すると、str
パラメータのセマンティクスは変更されませんでした。何かが起こっているか、コンパイラにバグがあります。
const A a;
a.process("abcd");
それは、constのcharのあなたの配列とは何の関係もありません:あなたのメンバ関数へのconst修飾子を追加
うまくいくはずです。その結果、結果に影響を与える他の変更も加えられました。
はあなたのあなたの関数を呼び出すと、constの可能なオブジェクトがあることを意味します。
問題を示すコンパイル可能な投稿をしてください。それが原因であるとは言えませんが、あなたが見ているものを推測することさえ困難です。 –
あなたはここで言うこととは異なる何かをしています。const関数には問題はありません:http://ideone.com/0RXZl –
「コンパイルエラー」と表示されています。 *コンパイラエラーとは何か、それが何行目を指しているのか。 – abelenky