私はそれが質問に無意味なことを知っているが、私はちょうど私がやろうとしています何の換言すれば、そのC++での参照によってコピーするために、どのようにオーバーロードできますか?
int a, b=5;
a = b;
a = 4;
cout<<b<<endl;
同様の参照でコピーする=演算子を使用することが可能であるだろうが、このコード印刷4を作ることです、 ありがとうございました...
私はそれが質問に無意味なことを知っているが、私はちょうど私がやろうとしています何の換言すれば、そのC++での参照によってコピーするために、どのようにオーバーロードできますか?
int a, b=5;
a = b;
a = 4;
cout<<b<<endl;
同様の参照でコピーする=演算子を使用することが可能であるだろうが、このコード印刷4を作ることです、 ありがとうございました...
a
をint
として既に宣言しているため、これを行うことはできません。
a
を参照(int&
)またはポインタ(int*
)をb
としてください。
彼は=演算子をオーバーロードすることでそれを行うことはできません –
いくつかのあいまいなトリックを使ってカスタムクラスを作成することは可能かもしれませんが、一般的にはノー・ゴーです。演算子のオーバーロードに関する最も重要なルールの1つ:演算子の意味を変更しないでください。例えば。 +
と-
の意味を入れ替えないでください。確かに、それはできますが、それはもう少し後にコードを読んで、他人とおそらくあなた自身も混乱させます。あなたが何をしようとして
は、ポインタまたは参照のいずれかを使用してC++で行うことができます。
int b = 5;
int &a = b;
a = 4;
cout << b << endl; // prints 4
んが、あなたがそれを行うことはできません。ユーザー定義クラスを使用せずに割り当てをオーバーロードするにはhttp://www.parashift.com/c++-faq-lite/intrinsic-types.html#faq-26.10
通常の参照を使用するだけで何が問題になりますか? – DrYap
これは、C++の参考資料です。 –