次の方法で共有


コンパイラの警告 (レベル 1) C4620

型 'type' に対して後置形式の 'operator ++' は見つかりません。前置形式を使用します

指定した型の後置インクリメント演算子の定義がありません。 コンパイラは、オーバーロードされた前置演算子を使用します。

この警告は、後置 ++ 演算子を定義することで回避できます。 次に示すように、引数が 2 つのバージョンの ++ 演算子を作成します。

// C4620.cpp
// compile with: /W1
class A
{
public:
   A(int nData) : m_nData(nData)
   {
   }

   A operator++()
   {
      m_nData -= 1;
      return *this;
   }

   // A operator++(int)
   // {
   //    A tmp = *this;
   //    m_nData -= 1;
   //    return tmp;
   // }

private:
   int m_nData;
};

int main()
{
   A a(10);
   ++a;
   a++;   // C4620
}