提示:以下是本篇文章正文内容,下面案例可供参考
一、主要运算符的重载
运算符重载,就是对已有的运算符重新进行定义,赋予其另一种功能,以适应不同的数据类型,其关键字为 operator。下列代码假设我们定义了person类型数据。
1.赋值运算符 = 的重载
person& operator=(person& per)
{
num = per.num;
name = per.name;
return *this;
}
2.加号运算符号 + 的重载
friend person& operator +(person& per1 , person& per2)
{
per1.num+=per2.num;
per1.name+=per2.name;
return per1;
}
3.输入输出运算符 << , >>的重载
输出运算符 << 的重载:
friend ostream& operator<<(ostream& out , person& per)
{
out<<per.num<<","<<per.name<<endl;
return out;
}
输入运算符 >> 的重载:
friend istream& operator>>(istream& in , person& per)
{
in>>per.num>>per.name;
return in;
}
4.判断运算符 == , != 的重载
判断运算符 == 的重载:
friend bool operator ==(person& per1 , person& per2)
{
return (per1.num == per2.num && per1.name ==per2.name );
}
判断运算符 != 的重载:
friend bool operator !=(person& per1 , person& per2)
{
return !(per1.num == per2.num && per1.name ==per2.name );
}
二、运算符重载完整代码实例
代码如下:
#include <iostream>
#include <string>
using namespace std;
class person
{
public:
person(int a , string b):num(a),name(b) { }
void display() {cout<<num<<" "<<name<<endl;}
//1.赋值运算符 = 的重载
person& operator=(person& per)
{
num = per.num;
name = per.name;
return *this;
}
//2.加号运算符号 + 的重载
friend person& operator +(person& per1 , person& per2)
{
per1.num+=per2.num;
per1.name+=per2.name;
return per1;
}
//3.输入输出运算符 << , >>的重载
friend ostream& operator<<(ostream& out , person& per)
{
out<<per.num<<","<<per.name<<endl;
return out;
}
friend istream& operator>>(istream& in , person& per)
{
in>>per.num>>per.name;
return in;
}
//4.判断运算符 == , != 的重载
friend bool operator ==(person& per1 , person& per2)
{
return (per1.num == per2.num && per1.name ==per2.name );
}
friend bool operator !=(person& per1 , person& per2)
{
return !(per1.num == per2.num && per1.name ==per2.name );
}
private:
int num;
string name;
};
int main() {
// 运算符 =
cout<<"----运算符 = 重载实例----"<<endl;
person p1(99,"小高");
person p2 = p1;
cout<<p2;
// 运算符 +
cout<<"----运算符 + 重载实例----"<<endl;
person p3 = p1+p2;
p3.display();
// 运算符 << , >>
cout<<"----运算符 << , >> 重载实例----"<<endl;
cout<<"请输入:"<<endl;
cin>>p3;
cout<<p3;
// 运算符 == , !=
cout<<"----运算符 == ,!= 重载实例----"<<endl;
cout<<(p1 == p2)<<endl;
cout<<(p1 != p2)<<endl;
return 0;
}
总结
以上就是常用运算符的重载啦,应注意不同运算符重载时的不同定义奥。