运算符重载
operator+()函数的名称使得可以使用函数表达法和运算符表示符表示法来调用它。编译器将根据操作类的类型来确定如何做:
int a,b,c;
TIME A,B,C,D;
c=a+b;
C=A+B;
C=A+B+D+C;
#include<iostream>
using namespace std;
class TIME
{
public:
TIME();
TIME(int a,int b=0);
~TIME();
void addmin(int t1);
void addhou(int t2);
TIME operator+(const TIME& t3)const;
TIME operator*(double t6)const;
void show();
private:
int h;
int m;
};
TIME TIME::operator*(double t6)const
{
TIME f;
long s = h * t6 * 60 + m*t6;
f.h = s / 60;
f.m = s %60;
return f;
}
TIME TIME::operator+(const TIME& t3)const
{
TIME t4;
t4.m = t3.m + m;
t4.h = t3.h + m / 60+h;
t4.m = t4.m % 60;
return t4;
}
void TIME::show()
{
cout << "minutes:" << m << endl << "hours:" << h << endl;
}
void TIME::addmin(int t1)
{
m = m + t1;
h = h + m / 60;
m = m % 60;
}
void TIME::addhou(int t2)
{
h = h + t2;
}
TIME::TIME()
{
h = 0;
m = 0;
}
TIME::TIME(int a,int b)
{
h = a;
m = b;
}
TIME::~TIME()
{
}
int main()
{
TIME m1;
TIME m2(2, 30);
TIME m3;
TIME m4;
TIME m5;
TIME m6;
m1.addmin(68);
m1.show();
m3 = m2+m1;
m3.show();
m4 = m2 + m1 + m1;
m4.show();
m5 = m4.operator*(2);
m5.show();
m6 = m4 * 2;
m6.show();
return 0;
}
在这里m4*&2不等于2*m4,下面友元会将。
C++运算符重载:TIME类的时间加法与乘法实现
这篇博客探讨了C++中运算符重载的概念,通过一个名为TIME的类展示了如何实现加法(+)和乘法(*)运算。示例中,TIME类的成员函数用于添加分钟和小时,并通过运算符重载实现时间的相加和与数值的相乘。在main函数中,这些操作被用于创建和操作TIME对象,展示了运算符重载的使用效果。
6618

被折叠的 条评论
为什么被折叠?



