// // ------ Main (Driver) ------ int main(void) { Money Giveme(10,12); Money IWant(11.20); Money GotNone; cout << " I gave you " << Giveme.amount() << endl; cout << " You Wanted " << IWant.amount() << endl; cout << " you got nothing " << GotNone.amount() << endl; cout << " Giving you more from " << Giveme.amount(20.35); cout << " To " << Giveme.amount() << endl; Money MaxMoney = Giveme.max(IWant), MinMoney = IWant.min(Giveme); cout << " The Max Money is " << MaxMoney.amount() << endl; cout << " The Min Money is " << MinMoney.amount() << endl; Giveme.add(IWant); cout << " The Add Money is " ; Giveme.show(); cout << endl; IWant.sub(Giveme); cout << " The Sub Money is " ; IWant.show() ; cout << endl; IWant.use_parens(); cout << " The account style Money is " ; IWant.show() ; cout << endl; Giveme.mul(2.0); cout << " The Mul Money is " ; Giveme.show(); cout << endl; IWant.div(-1.0); cout << " The div Money is " ; IWant.show() ; cout << endl; return 0; }
//------------------------------------------------------------------------------ void ConditionValueDelegate::setModelData(QWidget* editor, QAbstractItemModel* model, const QModelIndex& index) const { switch (field(index)) { case AssignmentRule::Date: { QDateEdit* dateEditor = static_cast<QDateEdit*>(editor); QDate date = dateEditor->date(); model->setData(index, date.toString(Qt::ISODate), Qt::EditRole); } break; case AssignmentRule::Amount: { MoneyEdit* moneyEditor = static_cast<MoneyEdit*>(editor); Money amount = moneyEditor->value(); QString newVal = QString("%1,%2") .arg(amount.amount()).arg(amount.currency().code()); model->setData(index, newVal, Qt::EditRole); } break; default: { LineEdit* stringEditor = static_cast<LineEdit*>(editor); model->setData(index, stringEditor->text(), Qt::EditRole); } } }
// // ------ (/) operator --- // Money Money::operator/(double value) const { Money temp; if (value != 0) temp.amount(amount() / value); return temp; }
// // ------ Main (Driver) ------ int main(void) { Money Giveme(10,12); Money IWant; Money GotNone; cout << " Enter what you want " ; cin >> IWant; cout << " I gave you " << Giveme.amount() << endl; cout << " You Wanted " << IWant.amount() << endl; cout << " you got nothing " << GotNone.amount() << endl; cout << " Giving you more from " << Giveme.amount(20.35); cout << " To " << Giveme.amount() << endl; Money MaxMoney = Giveme.max(IWant), MinMoney = IWant.min(Giveme); cout << " The Max Money is " << MaxMoney.amount() << endl; cout << " The Min Money is " << MinMoney.amount() << endl; Money AddMoney = Giveme + IWant; cout << " The Add Money is " << AddMoney << endl; Money SubMoney = IWant - Giveme; cout << " The account style Money is " << SubMoney << endl; SubMoney.use_parens(); cout << " The account style Money is " << SubMoney << endl; Money MulMoney2 = Giveme * 2.0; cout << " The Mul Money * 2 is " << MulMoney2 << endl; Money MulMoney4 = 4.0 * Giveme; cout << " The 4 * Mul Money is " << MulMoney4 << endl; Money DivMoney = IWant / (2.0); cout << " The div Money is " << DivMoney << endl; return 0; }
Money operator*(const Money &m, double factor) { return Money(m.amount() * factor); }
Money Money::operator-(const Money & m) const { return Money(amount() - m.amount()); }
Money Money::operator+(const Money & m) const { return Money(m.amount() + amount()); }