运算符的重载

形式 operatorop()

例如operator+() 重载了+运算符
op必须是有效的C++运算符

代码

一个时间类

#ifndef __TIME_H__
#define __TIME_H__
class TIME
{
	private:
		int nHours;
		int nMinutes;
	public:
		TIME();
		TIME(int H, int M);
		void SetTime(int H, int M);
		void ShowTime(void) const;
		TIME operator+(const TIME & t) const;
		//+运算符的重载
};

#endif
#include "Time.h"

TIME::TIME()
{

}
TIME::TIME(int H, int M = 0)
{
	nHours = H;
	nMinutes = M;
}
void TIME::SetTime(int H, int M)
{
	nHours = H;
	nMinutes = M;
}
void TIME::ShowTime(void) const
{
	std::cout<<nHours<<":"<<nMinutes<<std::endl;
}
TIME TIME::operator+(const TIME & t) const
{
	TIME sum;

	sum.nMinutes = t.nMinutes + nMinutes;
	sum.nHours = t.nHours + nHours + sum.nMinutes/60;
	sum.nMinutes %= 60;
	sum.nHours %= 24;

	return sum;
}

#include "Time.h"

int main(int argc, char* argv[])
{
	TIME a(1,50);
	TIME b(2,10);

	TIME c = a + b;

	c.ShowTime();
	return 0;
}

C++内置的+运算符无法对用户自定义的类进行操作,需要进行运算符重载

① c = a + b;
②c = a.operator+(b);

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值