超载'>'作为非会员职能

时间:2016-05-10 05:55:58

标签: c++ c++11 visual-c++

我正在尝试编写一个程序,我可以将两个员工的总薪酬与超负荷的运营商进行比较。为了获得总薪酬,我有一个返回总薪酬的会员功能。出于某种原因,每当我去比较我获得的两笔总薪酬时:

  

错误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);
    }
}

1 个答案:

答案 0 :(得分:1)

为grosspay()

添加const到header和cpp文件
ProductID

const说明符确保实例在const声明中使用该函数。基本上,const意味着此函数不会进行更改并且是只读的。