《C++ Primer》7.1.3节练习
生活随笔
收集整理的這篇文章主要介紹了
《C++ Primer》7.1.3节练习
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
練習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; }練習7.7:
#include <iostream> #include "Sales_data.h" using namespace std;int main() {cout<<"請輸入交易記錄(ISBN,銷售額,原價,實際售價):"<<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; }練習7.8:
read函數將其Sales_data參數定義成普通的引用是因為我們需要從標準輸入流中讀取數據并將其寫入到給定的Sales_data對象,因此需要有修改對象的權限。而print將其參數定義成常量引用是因為它只負責數據的輸出,不對其做任何更改。
練習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;} };練習7.10:
【出題思路】
read函數的返回類型是std::istream &,體會這里使用引用的作用。
【解答】
因為read函數的返回類型是引用,所以read(cin, data1)的返回值可以繼續(xù)作為外層read函數的實參使用。該條件檢驗讀入data1和data2的過程是否正確,如果正確,條件滿足;否則條件不滿足。
總結
以上是生活随笔為你收集整理的《C++ Primer》7.1.3节练习的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《C++ Primer》7.1.2节练习
- 下一篇: 《C++ Primer》7.1.4节练习