C++ <使用函数运算符重载执行类对象加法>

来源:互联网 发布:linux 多核cpu使用率 编辑:程序博客网 时间:2024/06/12 23:18

运行结果:

 Enter the first money (dollars): 12.123 Invalid dollars and cents, negative values Enter the first money (dollars): 33.99 Enter the second money (dollars): 35.33 The sum is: $69.32

AltMoney.h

#ifndef __frendFuciton__AltMoney__#define __frendFuciton__AltMoney__class AltMoney {private:    int dollars;    int cents;public:    AltMoney();    AltMoney(int dollars, int cents);    AltMoney operator+(const AltMoney& m);    void show();};#endif 

AltMoney.cpp

#include "AltMoney.h"#include <iostream>AltMoney::AltMoney() {    dollars = cents = 0;}AltMoney::AltMoney(int dollars, int cents) {    this->dollars = dollars;    this->cents = cents;}AltMoney AltMoney::operator+(const AltMoney& m) {    const int CENTS_PER_DOLLAR = 100;    AltMoney sum;    sum.cents = cents + m.cents;    int count = sum.cents / CENTS_PER_DOLLAR;    sum.cents %= CENTS_PER_DOLLAR;    sum.dollars = dollars + m.dollars + count;    return sum;}void AltMoney::show() {    std::cout << "The sum is: " << "$" << dollars << "." << cents;}

operateOverFlow.cpp

#include "AltMoney.h"#include <iostream>#include <cstdlib>void readMoney(int& dollars, int& cents);int main() {    using std::cout;    using std::cin;    AltMoney sum;    int dollars, cents;    cout << "Enter the first money (dollars): ";    readMoney(dollars, cents);    AltMoney m1(dollars, cents);    cout << "Enter the second money (dollars): ";    readMoney(dollars, cents);    AltMoney m2(dollars, cents);    sum = m1 + m2;    sum.show();    return 0;}void readMoney(int& dollars, int& cents) {    using std::cout;    using std::cin;    cin >> dollars;    cin.get();    cin >> cents;    if (dollars < 0 || cents < 0 || cents >=100 ) {        cout << "Invalid dollars and cents, negative values\n";        exit(EXIT_FAILURE);    }}
0 0
原创粉丝点击