我有一个小程序,包括操作员关键字重载。 它总是给我一个编译器错误C3867。 我该怎么办,或者此代码在哪里出问题?
这是用Visual Studio C ++ 2019编写的程序
#include <iostream>
#include "Header2.h"
#include <assert.h>
long newClass::operator=(long Val) {
m_Value = Val;
return m_Value;
}
long newClass::operator+=(long Val)
{
m_Value += Val;
return m_Value;
}
long newClass::operator-=(long Val)
{
m_Value -= Val;
return m_Value;
}
long newClass::operator*=(long Val)
{
m_Value *= Val;
return m_Value;
}
long newClass::operator/=(long Val)
{
m_Value /= Val;
return m_Value;
}
static int i = 2;
newClass nc;
int main(int argc, char **argv)
{
nc.operator=(100);
nc.operator+=(200);
std::cout << nc.Value() << std::endl; // should print 300
return 0;
}
这是头文件:
#pragma once
class newClass
{
public:
long operator=(long Val);
long operator+=(long Val);
long Value() { return m_Value; } // <= this function returns a value
protected:
long m_Value;
};
我希望输出为300,并进行验证。