# 重载运算符

struct CarType
{
string maker;
int year;
float price;
};

if(mycar>2000)
cout<<"My car is more than 2000"<<endl;

C++不知道如何处理这段代码，C++其实不知道是将myCar中的year与2000比较还是myCar中的price与2000比较。我们必须通过编写1个C++能够履行的函数，告知C++如何处理这1情况。

struct CarType
{
string maker;
int year;
float price;
//重载操作符 >
bool operator >(float number)
{
if(price>number)
return true;
return false;
}
};

mycar.operator>(2000)

if(myCar>yourcar)编译器会报错，由于yourcar不能传递给参数number,它不是1个整型类型，我们可以编写以下代码：

struct CarType
{
string maker;
int year;
float price;
//重载操作符 >
bool operator >(float number)
{
if(price>number)
return true;
return false;
}
bool operator >(CarType yourcar)
{
if(price>yourcar.price)
return true;
return false;
}
};

if(2000 < mycar)
cout<<"My car is more than 2000"<<endl;

struct CarType
{
string maker;
int year;
float price;
//重载操作符 >
bool operator >(float number)
{
if(price>number)
return true;
return false;
}
bool operator >(CarType yourcar)
{
if(price>yourcar.price)
return true;
return false;
}
};
bool operator <(int number ,CarType car)
{
if(car.price > number)
return true;
return false;
}

#include <iostream>
#include <iomanip>
#include <string>
using namespace std;

struct CarType
{
string maker;
int year;
float price;
//重载操作符 >
bool operator >(float number)
{
if(price>number)
return true;
return false;
}
bool operator >(CarType yourcar)
{
if(price>yourcar.price)
return true;
return false;
}
};
bool operator <(int number ,CarType car)
{
if(car.price > number)
return true;
return false;
}
//结构和类之间的差别：1结构关键词struct 类关键词class 2.结构中默许公有，类中默许私有.
int main()
{
CarType mycar,yourcar;
mycar.maker="Mercedes";
mycar.year=2014;
mycar.price=45567.7155;
//属于同1个结构的对象之间能进行对象赋值
yourcar=mycar;
yourcar.price=10000;
cout<<fixed<<showpoint<<setprecision(2)<<"I will offer \$"<<mycar.price⑵00<<" for your car"<<endl;
if(mycar>2000)
cout<<"My car is more than 2000"<<endl;
if(mycar>yourcar)
cout<<"My car is worth more than your car"<<endl;
if(2000 < mycar)
cout<<"My car is more than 2000"<<endl;

mycar.operator>(2000);;
mycar.operator>(yourcar);
operator<(2000,mycar);
return 0;
}

1. 本站所有资源来源于用户上传和网络，如有侵权请邮件联系站长！
2. 分享目的仅供大家学习和交流，您必须在下载后24小时内删除！
3. 不得使用于非法商业用途，不得违反国家法律。否则后果自负！
4. 本站提供的源码、模板、插件等等其他资源，都不包含技术服务请大家谅解！
5. 如有链接无法下载、失效或广告，请联系管理员处理！
6. 本站资源售价只是赞助，收取费用仅维持本站的日常运营所需！
7. 如遇到加密压缩包，请使用WINRAR解压,如遇到无法解压的请联系管理员！