《C++ Primer》7.1.3节练习
生活随笔
收集整理的這篇文章主要介紹了
《C++ Primer》7.1.3节练习
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
練習(xí)7.6:
#include <iostream> using namespace std;Sales_data add(const Sales_data &lhs,const Sales_data &rhs) {Sales_data sum = lhs;sum.combine(rhs);return sum; }std::istream &read(std::istream &is ,Sales_data &item) {is>>item.bookNo>>item.units_sold>>item.sellingprice>>item.saleprice;return is; }std::ostream &print(std::ostream &os,const Sales_data &item) {os<<item.isbn()<<" "<<item.units_sold<<" "<<item.sellingprice<<" "<<item.saleprice<<" "<<item.discount;return os; }練習(xí)7.7:
#include <iostream> #include "Sales_data.h" using namespace std;int main() {cout<<"請(qǐng)輸入交易記錄(ISBN,銷售額,原價(jià),實(shí)際售價(jià)):"<<endl;Sales_data total;if (read(cin,total)){Sales_data trans;while(read(cin,trans)){if (total.isbn()==trans.isbn())total = add(total,trans);else{print(cout,total);cout<<endl;total = trans;}}print(cout,total);cout<<endl;}else{cerr<<"No data?!"<<endl;return -1;}return 0; }練習(xí)7.8:
read函數(shù)將其Sales_data參數(shù)定義成普通的引用是因?yàn)槲覀冃枰獜臉?biāo)準(zhǔn)輸入流中讀取數(shù)據(jù)并將其寫入到給定的Sales_data對(duì)象,因此需要有修改對(duì)象的權(quán)限。而print將其參數(shù)定義成常量引用是因?yàn)樗回?fù)責(zé)數(shù)據(jù)的輸出,不對(duì)其做任何更改。
練習(xí)7.9:
#include <iostream> #include <string> using std::string;class Person {private:string strName;string strAddress;public:string getName()const {return strName;}string getAddress() const {return strAddress;}std::istream &read(std::istream&is,Person &per){is>>per.strName>>per.strAddress;return is;}std::ostream &print(std::ostream &os,const Person &per){os<<per.getName()<<per.getAddress();return os;} };練習(xí)7.10:
【出題思路】
read函數(shù)的返回類型是std::istream &,體會(huì)這里使用引用的作用。
【解答】
因?yàn)閞ead函數(shù)的返回類型是引用,所以read(cin, data1)的返回值可以繼續(xù)作為外層read函數(shù)的實(shí)參使用。該條件檢驗(yàn)讀入data1和data2的過(guò)程是否正確,如果正確,條件滿足;否則條件不滿足。
總結(jié)
以上是生活随笔為你收集整理的《C++ Primer》7.1.3节练习的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 《C++ Primer》7.1.2节练习
- 下一篇: 《C++ Primer》7.1.4节练习