目录
一、operator== :等号判断重载
二、operator = : 等号赋值重载
三、operator != : 不等于重载
四、operator> : 大于号 或者 小于号 重载
五、operator << :输入重定向重载
六、operator + :加号重载
七、operator ++ :++重载
八、operator -- :--重载减减
有时候为了方便我们可能需要给类有各种额外的操作, 这个时候我们可以通过重载操作符来满足我们的要求。以下是我们可以使用到的操作符,并且每个操作符我们还可以利用同名函数来给出不同的玩法。我们就简单的几个来进行实例。

文件都包含头文件
#include <string>
#include <iostream>
一、operator== :双等号操作符重载
双等号操作符重载实例如下:
class STU {
private:string _name;int _age;
public:STU(string name, int age) { _name = name; _age = age; };const string getName() { return _name; };const int getAge() { return _age; };bool operator ==( STU p1) {if (getName() == p1.getName() && getAge() == p1.getAge()) {return true;}else{return false;}}operator ==( string name) {if (getName() == name) {return true;}else{return false;}}
};
operator==使用
int main()
{STU stu("战三",10);STU stu2("战三", 10);if (stu == stu2) {cout << "他两相等" << endl;}else {cout << "他两不等" << endl;}if (stu == "战三") {cout << "他两相等" << endl;}else {cout << "他两不等" << endl;}system("pause");return 0;
}
运行结果:

如果设置初始化两个不等。
二、operator = : 等号操作符重载
等号操作符重载实例如下:
class STU {
private:string _name;int _age;
public:STU(string name, int age) { _name = name; _age = age; };const string getName() { return _name; };const int getAge() { return _age; };void show() { cout << "名字:" << _name << "年龄:" << _age<<endl; };void operator = (STU p1) {_name = p1.getName();_age = p1.getAge();}
};
等号使用
int main()
{STU stu1("张三", 10);STU stu2("李四", 12);stu1.show();stu2.show();stu1 = stu2;stu1.show();
}
运行结果:

三、operator != : 不等号操作符重载
不等号操作符重载实例如下:
class STU {
private:string _name;int _age;
public:STU(string name, int age) { _name = name; _age = age; };const string getName() { return _name; };const int getAge() { return _age; };void show() { cout << "名字:" << _name << "年龄:" << _age<<endl; };bool operator != (STU p1) {if (_name != p1.getName() || _age != p1.getAge()) {return true;}else {return false;}}
};
使用
int main()
{STU stu1("张三", 10);STU stu2("李四", 12);if (stu1 != stu2) {cout << "他两不等" << endl;}else {cout << "他两相等" << endl;}STU stu3("张三", 10);STU stu4("张三", 10);if (stu3 != stu4) {cout << "他两不等" << endl;}else {cout << "他两相等" << endl;}
}
运行结果:

四、operator> : 大于号 或者 小于号 重载
大于号操作符重载实例如下:
class STU {
private:string _name;int _age;
public:STU(string name, int age) { _name = name; _age = age; };const string getName() { return _name; };const int getAge() { return _age; };void show() { cout << "名字:" << _name << "年龄:" << _age<<endl; };bool operator < (STU p1) {if (_age < p1.getAge()) {return true;}else {return false;}}
};
使用
int main()
{STU stu1("张三", 10);STU stu2("李四", 12);if (stu1 < stu2) {cout << stu1.getName() << "的年龄小于" << stu2.getName()<<endl;}else{cout << stu1.getName() << "的年龄大于等" << stu2.getName()<<endl;}
}
运行结果:

五、operator << :输入重定向操作符重载
重定向操作符重载实例如下:
class STU {
private:string _name;int _age;
public:STU(string name, int age) { _name = name; _age = age; };const string getName() { return _name; };const int getAge() { return _age; };void show() { cout << "名字:" << _name << "年龄:" << _age<<endl; };void operator << (string strName) {cout << _name << "与" << strName << "结义金兰" << endl;}void operator << (STU p1){cout << _name << "与" << p1.getName() << "成为兄弟" << endl;}
};
使用
int main()
{STU stu("双儿", 10);stu << "阿珂";STU stu2("刘备",30);STU stu3("关羽",29);stu2 << stu3;
}
运行结果:

六、operator + :加号操作符重载
加号操作符重载实例如下:
class STU {
private:string _name;int _age;
public:STU(string name, int age) { _name = name; _age = age; };const string getName() { return _name; };const int getAge() { return _age; };void show() { cout << "名字:" << _name << "年龄:" << _age<<endl; };STU operator +(int up) {_age += up;return *this;}};
使用:
int main()
{STU stu("双儿", 10);stu = stu + 10; // 双儿年龄加10stu.show();
}
运行结果:

七、operator ++ :++重载
双加号操作符重载
class STU {
private:string _name;int _age;
public:STU(string name, int age) { _name = name; _age = age; };const string getName() { return _name; };const int getAge() { return _age; };void show() { cout << "名字:" << _name << "年龄:" << _age<<endl; };STU operator ++(int) {_age++;return *this;}
};
使用:
int main()
{STU stu("双儿", 10);stu++; // 双儿年龄加10stu.show();
}
运行结果:

八、operator -- :--重载减减
双减号操作符重载实例如下:
class STU {
private:string _name;int _age;
public:STU(string name, int age) { _name = name; _age = age; };const string getName() { return _name; };const int getAge() { return _age; };void show() { cout << "名字:" << _name << "年龄:" << _age<<endl; };STU operator --(int) {_age--;return *this;}
};
int main()
{STU stu("双儿", 10);stu--; // 双儿年龄加10stu.show();
}
运行结果:













![面试06,[长亮科技]()(offer)、[荔枝]()FM(在确定部门和薪资)、[涂鸦智能]()(第一轮电话面半小时,待后续)、华资软件(HR面)、[广州速游]()(已挂)。至于公司怎么样不加以言论。](https://img-blog.csdnimg.cn/img_convert/0a8f4edbf8a2587426f02790e8085e9c.png)





