运算符重载

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言:运算符重载是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;
}

 运行结果

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值