打印

编译问题

[复制链接]
1255|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
txcy|  楼主 | 2014-2-28 19:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include <iostream>
using namespace std;
class Person{
public:
    int id;
    Person(int id){
        this->id=id;
    }
    void toString(){
        cout<<"{id:"<<this->id<<"}";
    }
     operator ==(const Person &p1,const Person &p2){
        return p1.id==p2.id?true:false;
    }
     operator !=(const Person &p1,const Person &p2){
             return p1.id==p2.id?false:true;
         }
};
VC6.0中报错了:
error C2804: binary 'operator ==' has too many parameters
error C2333: '==' : error in function declaration; skipping function body
error C2804: binary 'operator !=' has too many parameters
error C2333: '!=' : error in function declaration; skipping function body

可是我试过了以下方法,还是不通过:
operator ==(const Person &p2){
        return id==p2.id?true:false;
    }
该怎么办呢?

相关帖子

沙发
秋天落叶| | 2014-2-28 19:16 | 只看该作者
需要带个bool的返回值

使用特权

评论回复
板凳
pkat| | 2014-2-28 19:24 | 只看该作者
要么声明为友元,要么减少一个参数,二目运算符声明为类的成员函数时,只有一个参数。

使用特权

评论回复
地板
baidudz| | 2014-2-28 19:33 | 只看该作者
参数太多了,错误已经给出提示了!!!

使用特权

评论回复
5
smilingangel| | 2014-2-28 22:37 | 只看该作者
too many parameters?看下==右边的变量参数的,能不能先计算好的,在直接用的呢

使用特权

评论回复
6
香水橙| | 2014-3-1 21:45 | 只看该作者
加上括号:return (p1.id==p2.id)?true:false;

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

274

主题

2106

帖子

0

粉丝