文章目录
11.1 2 3
代码
//namesp.h
#pragma once
#ifndef MYTIME0_H_
#define MYTIME0_H_
class Time
{
//私有成员参数 小时、分钟
private:
int hours;
int minutes;
public:
//构造函数
Time();
Time(int h, int m = 0);
//分钟相加
void AddMin(int m);
//小时相加
void AddHr(int h);
//重置
void Reset(int h = 0, int m = 0);
//时间相加
Time Sum(const Time& t) const;
//显示时间
void Show()const;
};
#endif // !MYTIME0_H_
//mytime0.cpp
#include <iostream>
#include "mytime0.h"
using namespace std;
Time::Time()
{
hours = minutes = 0;
}
Time::Time(int h, int m)
{
hours = h;
minutes = m;
}
//参数分钟m
void Time::AddMin(int m)
{
minutes += m;
hours += minutes / 60;//取整
minutes %= 60;//取余
}
void Time::AddHr(int h)
{
hours += h;
}
void Time::Reset(int h, int m)
{
hours = h;
minutes = m;
}
Time Time::Sum(const Time& t)const
{
Time sum;
sum.minutes = minutes + t.minutes;
sum.hours = hours + t.hours + sum.minutes / 60;
sum.minutes %= 60;
return sum;
}
void Time::Show()const
{
cout << hours << " hours, " << minutes << " minutes";
}
//usetime0.cpp
#include <iostream>
#include "mytime0.h"
using namespace std;
int main()
{
//创建Time对象planning
Time planning;
Time coding(2, 40);
Time fixing(5, 55);
Time total;
cout << "plannig time = ";
planning.Show();
cout << endl;
cout << "coding time = ";
coding.Show();
cout << endl;
cout << "fixing time = ";
fixing.Show();
cout << endl;
total = coding.Sum(fixing);
cout << "coding.Sum(fixing) = ";
total.Show();
cout << endl;
return 0;
}
结果
知识点
1.类的声明、类方法定义、类使用
11.4 5 6
代码
#pragma once
#ifndef MYTIME1_H_
#define MYTIME1_H_
class Time
{
private:
int hours;
int minutes;
public:
Time();
Time(int h, int m = 0);
void AddMin(int m);
void AddHr(int h);
void Reset(int h = 0, int m = 0);
//加法运算符重载
//只能通过成员函数进行重载的有: = () [] ->
Time operator+(const Time& t) const;
void Show() const;
};
#endif // !MYTIME1_H_
#include <iostream>
#include "mytime1.h"
using namespace std;
Time::Time()
{
hours = minutes = 0;
}
Time::Time(int h, int m)
{
hours = h;
minutes = m;
}
void Time::AddMin(int m)
{
minutes += m;
hours += minutes / 60;
minutes %= 60;
}
void Time::AddHr(int h)
{
hours += h;
}
void Time::Reset(int h, int m)
{
hours = h;
minutes = m;
}
Time Time::operator+(const Time& t)const
{
Time sum;
sum.minutes = minutes + t.minutes;
sum.hours = hours + t.hours + sum.minutes / 60;
sum.minutes %= 60;
return sum;
}
void Time::Show()const
{
cout << hours << " hours, " << minutes << " minutes";
}
#include <iostream>
#include "mytime1.h"
using namespace std;
int main()
{
Time planning;
Time coding(2.40);
Time fixing(5, 55);
Time total;
cout << "planning time = ";
planning.Show();
cout << endl;
cout << "coding time = ";
coding.Show();
cout << endl;
cout << "fixing time = ";
fixing.Show();
cout << endl;
total = coding + fixing;
cout << "coding + fixing = ";
total.Show();
cout << endl;
Time morefixing(3, 28);
cout << "more fixing time = ";
morefixing.Show();
cout << endl;
total = morefixing.operator+(total);
cout << "morefixing.operator+(total) = ";
total.Show();
cout << endl;
return 0;
}
结果
知识点
1.加法运算符重载operator+
11.7 8 9
代码
#pragma once
#ifndef MYTIME1_H_
#define MYTIME1_H_
class Time
{
private:
int hours;
int minutes;
public:
Time();
Time(int h, int m = 0);
void