提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 前言:运算符重载是C++ 6大基本函数之一,可以使C++ 更加的灵活
- 一、什么是运算符重载?
- C++为了增强代码的可读性引入了运算符重载,运算符重载是具有特殊函数名的函数,也具有其返回值类型,函数名字以及参数列表,其返回值类型与参数列表与普通的函数相似。 函数原型:返回值类型operator操作符(参数列表) 函数名字为:关键字operator后面接需要重载的运算符符号
- 二、注意事项
- 1. .* 、 :: 、 sizeof 、 ?: 、 . 5个运算符不能进行重载。
- 2. 不能通过连接其他符号来创建新的操作符。
- 3. 重载操作符必须有一个类类型或者枚举类型的操作数。
- 4. 用于内置类型的操作符,其含义不能改变,例如:内置的整形+,不能改变其含义。
- 5. 作为类成员的重载函数,其形参看起来比操作数数目少1成员函数的操作符有一个默认的形参this,限定为第一个形参。
- 三、+ - * / 运算符的重载实例
#include<iostream>
using namespace std;
class Test
{
public: //构造函数,拷贝构造函数,析构函数
Test()
{
}
Test(int a)
{
_a = a;
cout << "构造函数! " << this << endl;
}
Test(const Test& a)
{
cout << "拷贝构造函数! "<<this << endl;
}
~Test()
{
cout << "析构函数! " << this << endl;
}
public:
int operator+(const Test& a) //+ 运算符的重载
{
return (_a + a._a);
}
int operator-(const Test& a) //-运算符的重载
{
return (_a - a._a);
}
int operator*(const Test& a) //*运算符的重载
{
return (_a * a._a);
}
int operator/(const Test& a) ///运算符的重载
{
return (_a / a._a);
}
private:
int _a;
int _b;
};
int main()
{
Test t1(10),t2(5);
int c1 = t1 + t2;
int c2 = t1 - t2;
int c3 = t1 * t2;
int c4 = t1 / t2;
return 0;
}
运行结果