C++运算符重载

运算符重载是本质是具有特殊函数名的函数,也具有返回值类型,函数名字以及参数列表,返回值名字和参数列表与普通函数类似。

函数原型:返回值类型 operator操作符 (参数列表)

(参数个数要和操作符的操作数保持一致)

注意:

1.不能连接其他符号创建新的操作符,只能重载存在的操作符。

2.重载操作符必须有一个类类型参数(自定义类型)。

3.用于内置类型的运算符,其含义不能改变。

4.作为类成员函数重载时,其形参看起来比操作数数目少1,因为成员函数的第一个参数为隐
藏的this。

5.    .*    ::   sizeof    ?:     .    以上5中运算符不能重载。

//使用全局变量的 operator==

bool operator==(const Date& d1, const Date& d2)
{
     return d1._year == d2._year
         && d1._month == d2._month
         && d1._day == d2._day;
}

//一般运算符重载要放到类中,全局的运算符重载,访问类变量时,
就要设置为公有,破坏了封装性,我们一般直接重载成员函数
(我们要注意成员函数的第一个参数 this)

还有较为特殊的前置++,后置++,前置--,后置--,运算符重载时,需要往后置--或后置++中传一个int类型的值。

// 后置--
Date operator--(int)
{
	Date tmp(*this);
	*this -= 1;
	return tmp;
}

// 前置--
Date& operator--()
{
	*this -= 1;
	return *this;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值