OROT -- 関係する演算子を一緒に上書き(Overwrite Related Operators Together)

提供: RAD Studio
移動先: 案内検索

C++ 検査 への移動


説明

ある種の演算子は、関係のあるものと一緒にオーバーロードしなければならず、そうでなければ、オーバーロードしないでください。 たとえば、delete 演算子をオーバーロードせずに new 演算子だけをオーバーロードすると、アプリケーションがクラッシュするおそれがあります。

OROT 検査では、以下の演算子ペアがオーバーロードされていないかを確認し、両方ではなく一方だけがオーバーロードされている場合には、違反を発生させます。 関連する演算子のどの組み合わせを確認対象とするかは、オプション パネルで選択できます。 デフォルトでは、すべて選択されています。

検査の対象となり得る相反演算子のペアは以下です。

  • ==!=
  • ++=
  • --=
  • newdelete

誤った例

 class LinkedListIterator {
 public:
   bool operator== (LinkedListIterator i) const;
   ...
 };

正しい例

 class LinkedListIterator {
 public:
   bool operator== (LinkedListIterator i) const;
   bool operator!= (LinkedListIterator i) const;
   ...
 };

関連項目