c++用if循环实现包含元,角,分的加法重载运算
时间: 2024-03-01 16:53:19 浏览: 23
以下是一个示例代码,实现了包含元、角、分的加法重载运算:
```
#include <iostream>
using namespace std;
class Money {
private:
int yuan; // 元
int jiao; // 角
int fen; // 分
public:
Money(int y, int j, int f) {
yuan = y;
jiao = j;
fen = f;
}
// 重载加法运算符
Money operator+(const Money& m) const {
int y = yuan + m.yuan;
int j = jiao + m.jiao;
int f = fen + m.fen;
// 处理进位
if (f >= 10) {
j += f / 10;
f %= 10;
}
if (j >= 10) {
y += j / 10;
j %= 10;
}
return Money(y, j, f);
}
void display() const {
cout << yuan << "元" << jiao << "角" << fen << "分" << endl;
}
};
int main() {
Money m1(5, 8, 6);
Money m2(3, 4, 7);
Money m3 = m1 + m2;
m3.display();
return 0;
}
```
在重载加法运算符时,我们将两个 Money 对象的元、角、分分别相加,然后处理进位,最后返回一个新的 Money 对象。这个新的对象就是两个原对象相加的结果。注意,我们在定义重载函数时使用了 const 关键字,表示这个函数不会修改对象的值。这是一个好的编程习惯,也是保证代码安全性的一种方式。