2016-12-12 5 views
0

例クラスにこれを渡す:C++以外のConst機能

int i; 

void Classname::a1(const Classname& var){ 

    var.a2(*this); 

} 

void Classname::a2(const Classname& var){ 

    var.i = 100; 

} 

がどのように私はA2へのconstを追加することなく、その作業を行うことができますか?

+7

なぜあなたはそれを変更したいのですか? –

答えて

3
  • 短い回答 - あなたはしないでください。

    varconstです。つまり、何も変更しないでください。 var.i=100は、他の人にとって非常に予期しない結果を招くことになります。

  • 回答が遅い - constを削除するか、iを変更可能にしてください。

    キーワードmutableは、オブジェクトがconstであっても変数を変更できることを意味します。代わりに、それを非constにすることで、それを変更することができ、人々はオブジェクトの修正を期待することができます。

  • 本当に厄介な答え - キャストconst - 距離。

    私はこの部分を肉付けするつもりはありません。恐ろしいので、a velocoraptor attacking you where you sitという結果になります。

+0

もう1つの方法は、フィールドiをポインタとして格納することです。 – LmTinyToon

+0

それはメモリ使用量を増やしますが、はいでも動作します。 – UKMonkey

+0

はい、私は完全に同意しています。 – LmTinyToon

関連する問題