다음을 통해 공유


컴파일러 경고(수준 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
}