共用方式為


編譯器警告 (層級 1) C4621

找不到類型 'type' 後置格式的 'operator --',已改用前置格式

未針對指定類型定義後置遞減運算元。 編譯器使用多載的前置運算子。

定義後置 -- 運算子即可避免這個警告。 建立運算子的 -- 雙自變數版本,如下所示:

// C4621.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--;   // C4621
}