第十一章_流类库及输入输出_461707878_165802845.ppt
文本预览下载声明
//date.h #ifndef __DATE_H__ #define __DATE_H__ #include iostream class Date { //日期类 …… //Date类中不再有静态成员函数read,其它内容与例10-24完全相同, }; std::istream operator (std::istream in, Date date); std::ostream operator (std::ostream out, const Date date); #endif //__DATE_H__ ? //date.cpp在例10-24的基础上删去了Date::read,增加了下面两个函数的定义 istream operator (istream in, Date date) { int year, month, day; char c1, c2; in year c1 month c2 day; date = Date(year, month, day); return in; } ostream operator (ostream out, const Date date) { out date.getYear() - date.getMonth() - date.getDay(); return out; } * 11.5综合实例——对个人银行账户管理程序的改进 例11-13(续) //account.h #ifndef __ACCOUNT_H__ #define __ACCOUNT_H__ #include date.h #include accumulator.h #include string #include map #include istream class Account { //账户类 …… //Account类中为以下函数增加了一个参数,其它成员与例10-24完全相同 virtual void show(std::ostream out) const; }; inline std::ostream operator (std::ostream out, const Account account) { account.show(out); return out; } class CreditAccount : public Account { //信用账户类 …… // CreditAccount类中为以下函数增加了一个参数,其它成员与例10-24完全相同 virtual void show(std::ostream out) const; }; //account.h中其它类的定义与例10-24完全一样 #endif //__ACCOUNT_H__ * 11.5综合实例——对个人银行账户管理程序的改进 例11-13(续) //account.cpp中,只有以下几个成员函数的实现有所改变,其它内容与例10-24完全相同 void AccountRecord::show() const { cout date \t# account-getId() \t amount \t balance \t desc endl; } Account::Account(const Date date, const string id) : id(id), balance(0) { cout date \t# id created endl; } void Account::show(ostream out) const { out id \tBalance: balance; } void CreditAccount::show(ostream out) const { Account::show(out); out \tAvailable credit: getAvailableCredit(); } * 11.5综合实例——对个人银行账户管理程序的改进 例11-13(续) //11_13.cpp #include account.h #include iostream #include fstream #include sstream #include vector #include algorithm #include string using namespace std; struct deleter { template class T void operator () (T* p) { delete p; } }; class Controller { //控制器,
显示全部