例クラスにこれを渡す:C++以外のConst機能
int i;
void Classname::a1(const Classname& var){
var.a2(*this);
}
void Classname::a2(const Classname& var){
var.i = 100;
}
がどのように私はA2へのconstを追加することなく、その作業を行うことができますか?
例クラスにこれを渡す:C++以外のConst機能
int i;
void Classname::a1(const Classname& var){
var.a2(*this);
}
void Classname::a2(const Classname& var){
var.i = 100;
}
がどのように私はA2へのconstを追加することなく、その作業を行うことができますか?
短い回答 - あなたはしないでください。
var
はconst
です。つまり、何も変更しないでください。 var.i=100
は、他の人にとって非常に予期しない結果を招くことになります。
回答が遅い - const
を削除するか、i
を変更可能にしてください。
キーワードmutable
は、オブジェクトがconst
であっても変数を変更できることを意味します。代わりに、それを非const
にすることで、それを変更することができ、人々はオブジェクトの修正を期待することができます。
本当に厄介な答え - キャストconst
- 距離。
私はこの部分を肉付けするつもりはありません。恐ろしいので、a velocoraptor attacking you where you sitという結果になります。
もう1つの方法は、フィールドiをポインタとして格納することです。 – LmTinyToon
それはメモリ使用量を増やしますが、はいでも動作します。 – UKMonkey
はい、私は完全に同意しています。 – LmTinyToon
なぜあなたはそれを変更したいのですか? –