C++类重载操作符出错!!

#include<iostream>classAA{public:AA(){}~AA(){}AA(inttt){t=tt;}booloperator==(AAa)cons... #include<iostream>

class AA
{
public:
AA(){}
~AA(){}
AA( int tt)
{
t = tt;
}
bool operator ==(AA a) const
{
return (this->get() == a.get());
}
int get() const
{
return t;
}
private:
int t;
};

int main( void )
{
AA a1(1), a2(1);
AA *a3 = new AA(3);
AA *a4 = new AA(4);
cout<<(a1==a2)<<endl; //成功
cout<<((*a3)==(*a4))<<endl;//报错,为什么涅?
bool bl = (*a3)==(*a4); //成功,为什么这样就行?

return 0;
}
是我犯傻了,呵呵。但我不知道为什么不加外面那组括号,就是写成cout<<(*a3)==(*a4)<<endl;会出错
展开
 我来答
百度网友bc799c6ec
2009-02-21 · TA获得超过122个赞
知道答主
回答量:27
采纳率:0%
帮助的人:15.7万
展开全部
没有报错啊
我在Linux上运行正常啊,编译器我用的是g++
答案补充:
你重载的==的优先级要低于<<的优先级,因此会先运算cout<<(*a3)然后才运算==
suiyue_2009
2009-02-20 · TA获得超过846个赞
知道小有建树答主
回答量:1248
采纳率:0%
帮助的人:880万
展开全部
没有错哦,我在VC6.0上运行的,不知道你在那里运行的
结果是
1
0
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式