• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            huyutian

            他強由他強,清風(fēng)拂山崗;他橫由他橫,明月照大江。他自狠來他自惡,我自一口真氣足

              C++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
              20 隨筆 :: 47 文章 :: 22 評論 :: 0 Trackbacks
            以前一直沒太搞明白,C++書上在重載運算符時,有的使用友元函數(shù),有的使用成員函數(shù)有何區(qū)別,但自己的程序中需要重載運算符的時候較少,所以也沒往心里去。
            最近寫一個程序需要用到C++的函數(shù)lower_bound,binary_search進行有序隊列的查找。函數(shù)有一個參數(shù)需要調(diào)用比較函數(shù)。我就使用成員函數(shù)重載了operator >,結(jié)果編譯報錯。檢查了半天也沒找到問題,為什么已經(jīng)重載了比較運算符,還報錯。然后在網(wǎng)上搜索了一番,終于搞明白了。
            bool operator < (const MyClass &rhs);
            在調(diào)用時實際上是this->(operator <)(&rhs);這個與lower_bound要求的比較函數(shù)的兩個參數(shù)都要是對象引用不相符,導(dǎo)致編譯錯誤。
            修改為友元函數(shù)就ok了。
            friend bool operator < (const MyClass &lhs, const MyClass &rhs);

            其實重載運算符是使用友元函數(shù),還是成員函數(shù),有相當(dāng)多講究的。
            可以看看redsnow的下面這篇文章.但這里主要是根據(jù)自己實際中遇到和解決問題的一點體會來寫的。
            C++的class的operator定義為friend function討論
            posted on 2010-01-28 16:11 胡雨田 閱讀(3364) 評論(0)  編輯 收藏 引用 所屬分類: 編程技巧
            亚洲国产精品无码久久久蜜芽 | 久久综合香蕉国产蜜臀AV| 午夜福利91久久福利| 久久婷婷国产综合精品| 国产精品内射久久久久欢欢| 亚洲人AV永久一区二区三区久久| 亚洲精品无码久久久久sm| 久久久91精品国产一区二区三区| 久久这里只有精品视频99| 久久久久国产精品熟女影院| 久久精品无码一区二区app| 久久久亚洲欧洲日产国码aⅴ| 久久亚洲国产成人精品无码区| 午夜欧美精品久久久久久久| 久久久久久无码国产精品中文字幕| 久久久久久午夜成人影院| 欧美与黑人午夜性猛交久久久 | 国产成人综合久久精品尤物| 亚洲国产精品无码久久| 亚洲欧洲中文日韩久久AV乱码| 久久久久中文字幕| 999久久久无码国产精品| 中文字幕日本人妻久久久免费| 亚洲国产高清精品线久久 | 亚洲色大成网站www久久九| 午夜肉伦伦影院久久精品免费看国产一区二区三区| 久久99国内精品自在现线| 中文字幕久久久久人妻| 久久午夜夜伦鲁鲁片免费无码影视| 久久久久久国产a免费观看不卡| 国产精品99久久不卡| 国产午夜精品久久久久九九电影| 偷窥少妇久久久久久久久| 国内精品伊人久久久久妇| 亚洲v国产v天堂a无码久久| 久久久久久无码国产精品中文字幕| 亚洲午夜精品久久久久久人妖| 久久99中文字幕久久| 日韩亚洲欧美久久久www综合网| 91精品日韩人妻无码久久不卡| 国内精品久久久久久久影视麻豆|