我正在尝试编写一个程序,我可以将两个员工的总薪酬与超负荷的运营商进行比较。为了获得总薪酬,我有一个返回总薪酬的会员功能。出于某种原因,每当我去比较我获得的两笔总薪酬时:
错误1错误C2662:'
double employeeclass::Employee::grosspay(void)
' :无法兑换'this
'来自'const employeeclass::Employee
'的指针到'employeeclass::Employee &
'
和
2 IntelliSense:对象具有与成员函数对象类型不兼容的类型限定符:
const employeeclass::Employee
我已经包含了给我提出问题的代码段。
.cpp:
#include <fstream>
#include <iomanip>
#include <string>
using namespace std;
#include "Employee.h"
namespace employeeclass {
bool operator> (const Employee &e1, const Employee &e2) {
if (e1.grosspay() > e2.grosspay())
return true;
else
return false;
}
}
.h文件
namespace employeeclass {
class Employee {
friend bool operator> (const Employee &e1, const Employee &e2);
}
}
答案 0 :(得分:1)
为grosspay()
添加const到header和cpp文件ProductID
const说明符确保实例在const声明中使用该函数。基本上,const意味着此函数不会进行更改并且是只读的。