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