私に興味を持って、私の記事の1のコメント:どのメンバ関数が突然変異するかをコンパイラがどのように決定するのですか?
Me too。私はアクセサ/ミューテータにも同じ名前を付けます。
私はいつも同じ名前のミューテータの代わりにsetBar(int bar)
を使用していたので、私はこれについて疑問に思っていました。私は知りたい:コンパイラは、const識別子に基づいて実行時に何が突然変異するかを決定することができますか、それはパラメータを持つため同じ関数名を使用できますか?
これは罰金コンパイルします:
class Foo
{
int bar_;
public:
int bar() { return bar_; }
void bar(int bar) { bar_ = bar; }
}
または私はこの(私はちょうどこの上で私と一緒に実行して、私はとにかくこれを実行する必要があります実現)しなければならないん
int bar() const { return bar_; }
Iドンどちらがどちらであるかは分かりません。 Constの正確さが重要なので、私はコンパイラが過度の負荷に異議を唱えることを望んでいると思います。
なぜこのように動作しますか?
あなたのコードは不正です。 int bar()のようになります。const {return bar_; } 私は推測する。戻り値の型はコード内で失われます。 –
あなたは私のポスト全体を見ましたか、それとも私を倒そうとしていますか? =( – jkeys