C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C ++での演算子のオーバーロードの基本的なルールとイディオムは何ですか?


C ++での演算子のオーバーロードに関しては、従う必要のある3つの基本的なルールがあります。そのようなすべてのルールと同様に、例外もあります。これらの3つのルールは-

です
  • 1。 演算子の意味が明確で議論の余地がない場合は常に、オーバーロードしないでください。代わりに、適切に選択された名前で関数を提供してください。基本的に、演算子をオーバーロードするための最初のそして最も重要なルールは、本質的に次のように述べています。
  • やらないでください。
  • それは奇妙に思えるかもしれませんが、演算子のオーバーロードが適切な場合はごくわずかです。その理由は、アプリケーションドメインでの演算子の使用がよく知られており、議論の余地がない限り、演算子のアプリケーションの背後にあるセマンティクスを理解するのは難しいためです。
  • 2。 常にオペレーターのよく知られたセマンティクスに固執します。 C ++は、オーバーロードされた演算子のセマンティクスに制限を課しません。コンパイラーは、適切な量から計算するために2項+演算子を実装するforcodeを幸福に解決できます。ただし、そのような関連演算子のユーザーは、式a+bがbからaを減算することを疑うことはありません。
  • 3。 関連する一連の操作からすべてを常に提供します。
  • 演算子は相互に関連しており、他の操作にも関連しています。タイプがa+bをサポートしている場合、ユーザーはa +=bも呼び出すことができると期待します。プレフィックスインクリメント++aをサポートしている場合、a++も同様に機能することを期待します。彼らがabであるかどうかもチェックできることを最も確実に期待するでしょう。彼らがあなたのタイプをコピー構築できる場合、彼らは割り当ても機能することを期待しています。
  • ほとんどの場合、演算子のオーバーロードは必要ありません。演算子が定義され、状況に適している場合にのみ、演算子をオーバーロードする必要があります。この投稿はhttps://stackoverflow.com/a/4421708/3719089に触発されています。

  1. Window上のc++のトップIDEは何ですか?

    大きなプロジェクトは、単なるテキストエディタでは管理が困難です。このような場合にIDEを使用すると、生産性が向上し、フラストレーションが軽減される可能性があります。 IDEにはさまざまな種類があり、ニーズに合ったものを選択する必要があります。これがWindowに最適なC/C++IDEのリストです。 Visual Studio − Microsoftが開発したIDEです。このIDEは、Windows上でC ++のプログラムを構築、開発、およびプロファイリングするためのクラス最高のツールを備えています。 Visual Studioには、多数のプラグインを備えた巨大なプラグインストアもありま

  2. Python変数の基本的なスコープルールは何ですか?

    MarkLutz著のLearningPythonで、彼はPythonスコープがどのように機能するかを覚えておくために次のニーモニックを提案しています。LEGB 最も狭い範囲から最も広い範囲への移行: Lは「ローカル」の略です。これは、関数のローカルスコープで定義されている変数を指します。 Eは「囲み」の略です。これは、他の関数をラップする関数のローカルスコープで定義された変数を指します。 Gは「グローバル」の略です。これらは、ファイルとモジュールのトップレベルで定義されている変数です。 Bは「ビルトイン」の略です。これらは、インタプリタの起動時にスコープにロードされる名前です。