《C++ Primer》14.3.1节练习
生活随笔
收集整理的這篇文章主要介紹了
《C++ Primer》14.3.1节练习
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
練習14.16:
//為strBlob定義==和!= class strBlob {friend bool operator==(const strBlob &lhs,const strBlob &rhs);friend bool operator!=(const strBlob &lhs,const strBlob &rhs); };bool operator==(const strBlob &lhs,const strBlob &rhs) {return lhs.data==rhs.data; }bool operator!=(const strBlob &lhs,const strBlob &rhs) {return !(lhs==rhs); }//為strBlobPtr定義==和!= class strBlobPtr {friend bool operator==(const strBlobPtr &lhs,const strBlobPtr &rhs);friend bool operator!=(const strBlobPtr &lhs,const strBlobPtr &rhs); };bool operator==(const strBlobPtr &lhs,const strBlobPtr &rhs) {auto l = lhs.wptr.lock(),r = rhs.wptr.lock();if (l==r)//兩個指針都為空,或指向相同的vector且curr指向相同元素時,相等,否則不等return (!r || lhs.curr==rhs.curr);else return false; }bool operator!=(const strBlobPtr &lhs,const strBlobPtr &rhs) {return !(lhs==rhs); }//為strVec定義==和!= class strVec {friend bool operator==(const strVec &lhs,const strVec &rhs);friend bool operator!=(const strVec &lhs,const strVec &rhs); };bool operator==(const strVec &lhs,const strVec &rhs); {if (lhs.size()!=rhs.size()){return false;}for (auto itr1=lhs.begin(),itr2 = rhs.begin();itr1!=lhs.end() && itr2!=rhs.end();itr1++,itr2++){if (*itr1!=*itr2){return false;}}return true; }bool operator!=(const strVec &lhs,const strVec &rhs) {return !(lhs==rhs); } //為String定義==和!= class String {friend bool operator==(const String &lhs,const String &rhs);friend bool operator!=(const String &lhs,const String &rhs);private:const char *str; }bool operator==(const String &lhs,const String &rhs) {return strcmp(lhs.str,rhs.str); }bool operator!=(const String &lhs,const String &rhs) {return !(lhs==rhs); }練習14.17:
在練習7.40中,我們實現了Date類。因為我們可以比較兩個日期是否相等,因此需要實現相等運算符。
class Date {friend bool operator==(const Date &d1,const Date &d2);friend bool operator!=(const Date &d1,const Date &d2); };bool operator==(const Date &d1,const Date &d2) {return d1.year==d2.year && d1.month==d2.month && d1.day==d2.day; }bool operator!=(const Date &d1,const Date &d2) {return !(d1==d2); }總結
以上是生活随笔為你收集整理的《C++ Primer》14.3.1节练习的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 联想 ThinkVision P27pz
- 下一篇: 比亚迪海洋网首款中型纯电SUV发布,海狮