編譯器警告 (層級 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
}