1.运算符重载
例如 << 是C++ 中的左移运算符,但在输出操作中与cout 配合则被称之为流插入运算符,作用是进行输出。,这种就是运算符重载
1.1 未进行运算符重载的demo
#include "Time.h"
#include "Date.h"
#include <iostream>
using namespace std;
CTime AddTime(CTime& time1, CTime& time2) {
int hour = time1.getHour() + time2.getHour();
return CTime(hour);
}
int main() {
CTime time1(1);
CTime time2(2);
CTime time3 = AddTime(time1, time2);
cout<<"hour = "<< time3.getHour()<<endl;
return 0;
}
1.2 运算符重载的demo
#include "Time.h"
#include "Date.h"
#include <iostream>
using namespace std;
// 运算符重载
CTime operator+(CTime& time1, CTime& time2){
int hour = time1.getHour() + time2.getHour();
return CTime(hour);
}
int main() {
CTime time1(1);
CTime time2(2);
// 使用运算符重载会更加直观
CTime time3 = time1 + time2;
cout<<"hour = "<< time3.getHour()<<endl;
return 0;
}
2.运算符重载demo
- 头文件定义, operator
#ifndef TIME_H
#define TIME_H
class CTime{
public:
// 构造函数
CTime();
// 带参数构造函数
CTime(int hour);
// 析构函数
~CTime();
void setHour(int hour);
int getHour();
// 运算符重载
CTime operator+(CTime& time);
private:
int m_nHour;
};
#endif
- 声明文件实现,operator
#include <iostream>
#include "Time.h"
using namespace std;
// 构造函数
CTime::CTime() {
m_nHour = 0;
}
CTime::CTime(int hour) {
m_nHour = hour;
}
CTime::~CTime(){
//std::cout<<"~CTime"<<endl;
}
void CTime::setHour(int hour) {
m_nHour = hour;
}
int CTime::getHour() {
return m_nHour;
}
CTime CTime:: operator+(CTime& time) {
return (this->m_nHour + time.m_nHour);
}
- 简洁明了的调用
#include "Time.h"
#include "Date.h"
#include <iostream>
using namespace std;
int main() {
CTime time1(1);
CTime time2(2);
// 使用运算符重载会更加直观
CTime time3 = time1 + time2;
cout<<"hour = "<< time3.getHour()<<endl;
return 0;
}