相信很多朋友和我一样一开始看的时候很不理解
对*的重载(类内定义)
CMyTime CMyTime::operator*(double n) const //重载为乘法运算符函数。
{
CMyTime result;
long totalMinutes = m_hours * 60 * n+ m_minutes *n;
result.m_minutes = totalMinutes % 60;
result.m_hours = totalMinutes / 60;
return result;
}
然后有这句
adjusted = total *1.5;
看作是
adjusted = total.operator*(1.5)
就比较容易理解了,也因此很容看出此时调换total和1.5的顺序是不可以的,1.5本身是个常量,不是类类型更没有成员函数了。
同理,在类外定义
Box operator+(const Box& a, const Box& b)
{
Box box;
box.length = a.length + b.length;
box.breadth = a.breadth + b.breadth;
box.height = a.height + b.height;
// cout << box.length << "--" << box.breadth << "--" << box.height << endl;
return box;
}
Box3 = Box1 + Box2;.
Box3 = operator*(Box1,Box2);
目前不知道有没有三元运算符。。。