《C++ Primer》14.1节练习
生活随笔
收集整理的這篇文章主要介紹了
《C++ Primer》14.1节练习
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
練習14.1:
不同點:
重載操作符必須具有至少一個class或枚舉類型的操作數。
重載操作符不保證操作數的求值順序,例如對&&和||的重載版本不再具有“短路求值”的特性,兩個操作數都要進行求值,而且不規定操作數的求值順序。
相同點:
對于優先級和結合性及操作數的數目都不變。
練習14.2:
class Sales_data {friend std::istream&operator>>(std::istream&,Sales_data &);friend std::ostream&operator<<(std::ostream&,const Salse_data &);public:Sales_data&operator+=(const Sales_data&); };Sales_data operator+(con練習14.3:
(a)"cobble" == "store"應用了C++語言內置版本的==,比較兩個指針。
(b)svec1[0] == svec2[0]應用了string版本的重載==。
?svec1 == svec2應用了vector版本的重載==。
(d)svec1[0] == "stone"應用了string版本的重載==,字符串字面常量被轉換為string。
練習14.4:
(a)%通常定義為非成員。
(b)%=通常定義為類成員,因為它會改變對象的狀態。
?++通常定義為類成員,因為它會改變對象的狀態。
(d)->必須定義為類成員,否則編譯會報錯。
(e)<<通常定義為非成員。
(f)&&通常定義為非成員。
(g)==通常定義為非成員。
(h)()必須定義為類成員,否則編譯會報錯。
練習14.5:
#include <iostream> using namespace std;class Date {public:Date() {};Date(int y, int m, int d) {year = y;month = m;day = d;}friend ostream &operator<<(ostream &os, const Date &dt);private:int year, month, day; };ostream &operator<<(ostream &os, const Date &d) {const char sep = '\t';os << "year:" << d.year << sep << "month:" << d.month << sep << "day:" << d.day << endl;return os; }總結
以上是生活随笔為你收集整理的《C++ Primer》14.1节练习的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2023新一代人工智能(深圳)创业大赛评
- 下一篇: 开源鸿蒙 4.1 计划明年 Q1 发布,