运算符重载
运算符重载的作用
为什么会用运算符重载机制?
用复数类举例
Complex c3 = c1 + c2;
原因 Complex是用户自定义类型,编译器根本不知道如何进行加减,于是编译器给提供了一种机制,让用户自己去完成,自定义类型的加减操作,这个机制就是运算符重载机制
运算符重载的限制:
不能进行重载的运算符:成员运算符,作用域运算符,条件运算符,sizeof运算符,typeid(一个RTTI运算符),const_cast、dynamic_cast、reinterpret_cast、static_cast强制类型转换运算符
1.MyTime.h头文件
#pragma once
#ifndef MYTIME_H_
#define MYTIME_H_
class CMyTime
{
private:
int m_hours;
int m_minutes;
public:
CMyTime();
CMyTime(int h, int m = 0);
void AddHr(int h); //小时更改
void AddMin(int m);//分钟更改
void Reset(int h = 0, int m = 0); //重新设置时间
CMyTime operator+(const CMyTime &t) const; //重载加法
CMyTime operator-(const CMyTime &t) const; //重载减法
CMyTime operator*(double n) const; //重载乘法
void Show() const;
~CMyTime();
};
#endif
2.MyTIme.cpp文件:
#include "stdafx.h"
#include "MyTime.h"
#include <iostream>
CMyTime::CMyTime()
{
m_hours = 0;
m_minutes = 0;
}
CMyTime::CMyTime(int h, int m)
{
m_hours = h;
m_minutes = m;
}
CMyTime::~CMyTime()
{
}
void CMyTime::AddHr(int h)