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;会出错 展开
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;会出错 展开
2个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询