青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

posts - 195,  comments - 30,  trackbacks - 0

在模板類中輸入流“》”和輸出流“《”的重載,若使用友元在類內聲明,在類外實現,那么連接時將會報錯,但我們可以采用以下三種方式來實現輸出流"<<"和"輸入流>>"的重載。

一、將輸出流"<<"和"輸入流>>"重載的實現寫在類中

#include "stdafx.h"
#include   <iostream>
using   namespace   std;  
   
template<class T>  
class Test  
{  
   public:  
      Test(const T& t):data(t){}
      //---------------------------------------------
      friend ostream& operator<<(ostream& out,Test<T>& t)    //輸出流重載聲明及實現
      {
           return out<<"data   is   "<<t.data;
      } //--------------------------------------------
      friend istream& operator>>(istream& in,Test<T>& t)      //輸入流重載聲明及實現
      {
          return in>>t.data;
      }//---------------------------------------------
   private:  
      T data;  
};//-----------------------------------------------------------------      
      
int   main()  
{  
   Test<int> b(3);  
   cout<<b<<'\n';  
   cin>>b;
   cout<<b<<'\n';
   return 0;
}

那么輸入輸出流重載為什么不能在類內聲明,類外實現呢??因為模板比較特殊,若果在模板類外實現重載的話:

template<class T>
ostream& operator<<(ostream& out,Test<T>& t)
{
        return out<<"data   is   "<<t.data;
} //--------------------------------------------

上面正好是函數模板的定義,而我們知道操作符重載函數不是類的成員函數,因此此處相當于定義了一個新的函數模板(不同于類中的friend ostream& operator<<(ostream& out,Test<T>& t) )。但若去掉template<class T> ,函數中的參數Test<T>就不知是什么類型,所以不能在模板類內聲明,類外實現操作符重載。

二、既然類外實現相當于重定義了一個函數模板,那么只要他不使用類的私用成員即可,因此重載的函數模板只有通過類的公有成員函數來實現對類的私有成員的操作,這樣不必在類內聲明它為友元,直接在類外重載即可。

#include "stdafx.h"
#include   <iostream>
using   namespace   std;  
   
template<class T>  
class Test  
{  
   public:  
      Test(const T& t):data(t){}
      T GetData()const{return data;}
      void SetData(T &item){data=item;}
   private:  
      T data;  
};//-----------------------------------------------------------------
template<class T>      
ostream& operator<<(ostream& out,Test<T>& t)   
{
      return out<<"data   is   "<<t.GetData();
} //--------------------------------------------
template<class T>
istream& operator>>(istream& in,Test<T>& t)     
{
     T item;
    in>>item;
    t.SetData(item);
    return in;
}//---------------------------------------------      
int   main()  
{  
   Test<int> b(3);  
   cout<<b<<'\n';  
   cin>>b;
   cout<<b<<'\n';
   return 0;
}  

三、使用過渡函數

#include "stdafx.h"
#include   <iostream>
using   namespace   std;  
   
template<class   T>  
class   Test  
{  
   public:  
      Test(const T& t):data(t){}
      //---------------------------------------------
      template<class CharT,class CharTraits>  
      basic_ostream<CharT,CharTraits>& Output(basic_ostream<CharT,CharTraits>& out)const    //輸出流過渡函數
      {
            return out<<"data   is   "<<data;
      } //--------------------------------------------
      template<class   CharT,class   CharTraits>  
      basic_istream<CharT,CharTraits>& Input(basic_istream<CharT,CharTraits>& in)    //輸入流過渡函數
      {
          return in>>data;
      }//---------------------------------------------
   private:  
      T data;  
};//-----------------------------------------------------------------      
template<class T,class CharT,class CharTraits>  
basic_ostream<CharT,CharTraits>& operator<<(basic_ostream<CharT,CharTraits>& out,const Test<T>& t)   //輸出流重載
{  
    return t.Output(out);  
}//------------------------------------------------------------------      
template<class T,class CharT,class CharTraits>  
basic_istream<CharT,CharTraits>& operator>>(basic_istream<CharT,CharTraits>& in,Test<T>& t)   //輸入流重載
{  
    return t.Input(in);  
}//------------------------------------------------------------------      
int   main()  
{  
   Test<int>   b(4);  
   cout<<b<<'\n';  
   cin>>b;
   cout<<b<<'\n';
   return 0;
}

posted on 2011-02-15 01:04 luis 閱讀(566) 評論(0)  編輯 收藏 引用

只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


<2011年3月>
272812345
6789101112
13141516171819
20212223242526
272829303112
3456789

常用鏈接

留言簿(3)

隨筆分類

隨筆檔案

文章分類

文章檔案

友情鏈接

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            欧美日韩国产限制| 亚洲手机视频| 久久国产精品久久久久久久久久| 欧美日韩国语| 欧美日韩在线不卡一区| 欧美性猛片xxxx免费看久爱| 欧美日韩一二三区| 国产乱人伦精品一区二区 | 久久综合久久综合久久综合| 久久成人18免费网站| 久久久99免费视频| 欧美电影在线观看完整版| 欧美午夜大胆人体| 1024日韩| 亚洲综合导航| 牛牛精品成人免费视频| 最新国产成人av网站网址麻豆| 亚洲精品视频在线观看免费| 亚洲女同性videos| 欧美二区在线| 欧美日韩午夜视频在线观看| 国产精品蜜臀在线观看| 狠狠色噜噜狠狠色综合久| 亚洲精品一区在线观看| 欧美一区二区三区成人| 亚洲国产乱码最新视频| 亚洲影院色无极综合| 久久尤物视频| 国产精品久久久久久亚洲毛片 | 欧美阿v一级看视频| 99re这里只有精品6| 欧美亚洲一区二区三区| 欧美国产日韩一区| 国语自产在线不卡| 亚洲综合欧美| 91久久国产综合久久| 欧美一区二视频| 欧美午夜精品久久久久久孕妇| 伊人精品久久久久7777| 亚洲在线第一页| 91久久国产综合久久91精品网站| 久久精品二区亚洲w码| 国产精品免费久久久久久| 亚洲日本中文字幕区| 久久综合久色欧美综合狠狠 | 国产一区自拍视频| 亚洲欧美大片| 亚洲精品中文字| 久久亚洲国产精品日日av夜夜| 国产精品国产自产拍高清av| 91久久久亚洲精品| 美女国内精品自产拍在线播放| 亚洲性av在线| 国产精品成人免费| 亚洲自拍偷拍一区| 亚洲视频www| 国产精品magnet| 亚洲伊人一本大道中文字幕| 91久久精品国产| 欧美高清在线视频| 夜夜狂射影院欧美极品| 亚洲韩国青草视频| 模特精品在线| 日韩午夜激情电影| 亚洲精品少妇| 国产精品久在线观看| 亚洲欧美综合v| 亚洲欧美国产高清va在线播| 国产欧美精品一区二区色综合| 午夜精品在线视频| 欧美在线观看一区| 精品69视频一区二区三区| 久久综合九色99| 欧美aⅴ99久久黑人专区| 亚洲精品在线观看视频| 亚洲视频精选在线| 国产午夜精品理论片a级探花 | 亚洲一区二区在线观看视频| 亚洲精品免费一区二区三区| 欧美日韩一区二区三区高清| 亚洲欧美精品伊人久久| 欧美一区二区免费视频| 亚洲国产第一| av成人免费| 国产一区二区三区自拍| 嫩草成人www欧美| 欧美日韩无遮挡| 久久精品国产亚洲精品| 蜜臀99久久精品久久久久久软件| 日韩午夜在线电影| 亚洲在线网站| 18成人免费观看视频| 91久久精品美女高潮| 国产精品国产三级欧美二区| 葵司免费一区二区三区四区五区| 欧美电影在线观看| 久久国产福利| 欧美精品一区在线播放| 久久超碰97中文字幕| 免费一级欧美片在线观看| 亚洲小说春色综合另类电影| 欧美一区亚洲二区| 在线视频欧美精品| 欧美在线视频免费观看| 一区二区精品在线| 久久久久久久久久看片| 亚洲性图久久| 欧美不卡三区| 久久久久久91香蕉国产| 欧美日韩免费在线| 欧美国产精品劲爆| 国产精品午夜视频| 亚洲美女视频网| 亚洲第一免费播放区| 亚洲欧美一区二区视频| 99日韩精品| 欧美寡妇偷汉性猛交| 久久午夜国产精品| 国产精品久在线观看| 尹人成人综合网| 亚洲素人一区二区| 中文精品视频| 欧美伦理91i| 欧美成人免费网| 精品999在线播放| 亚洲欧美日韩国产| 亚洲欧美在线观看| 国产精品黄视频| 这里只有精品视频在线| 亚洲图片欧美午夜| 欧美日韩免费观看一区=区三区 | 女仆av观看一区| 国产日韩欧美日韩大片| 亚洲一区二区三区四区在线观看| 一区二区三区 在线观看视| 欧美大片一区二区| 亚洲精品国产精品国自产观看浪潮 | 亚洲电影免费在线观看| 欧美在线观看视频| 久久久亚洲国产天美传媒修理工 | aa国产精品| 在线亚洲欧美| 欧美日韩一本到| 亚洲女ⅴideoshd黑人| 性欧美办公室18xxxxhd| 国产乱码精品一区二区三区忘忧草 | 美女露胸一区二区三区| 欧美sm视频| 亚洲理论在线观看| 欧美午夜美女看片| 羞羞视频在线观看欧美| 麻豆av一区二区三区久久| 亚洲电影专区| 欧美日韩在线不卡| 欧美一区二区大片| 噜噜噜久久亚洲精品国产品小说| 狠狠爱综合网| 欧美国产视频在线| 亚洲一区二区高清| 美女图片一区二区| 亚洲美女在线视频| 国产精品久久久久一区二区三区共| 午夜精品久久久久久久99热浪潮| 久久久久综合一区二区三区| 亚洲国产成人av| 欧美日韩福利视频| 午夜精品久久久久久久99热浪潮| 久热精品视频| 在线亚洲美日韩| 国产在线观看91精品一区| 欧美成人午夜影院| 亚洲欧美综合网| 亚洲免费电影在线| 美女脱光内衣内裤视频久久影院 | 久久国产手机看片| 亚洲欧洲日产国产网站| 国产精品蜜臀在线观看| 麻豆成人在线播放| 亚洲专区一区二区三区| 欧美激情综合| 久久国产精品久久国产精品| 亚洲精品久久久久久一区二区| 国产欧美在线| 欧美日韩国内自拍| 蜜桃久久av| 久久精品人人| 在线一区二区三区四区| 欧美激情91| 国产精品尤物福利片在线观看| 久久精品91久久香蕉加勒比| 一区二区三区四区五区精品视频| 媚黑女一区二区| 久久国产高清| 欧美一区二区三区在| 99av国产精品欲麻豆| 亚洲国产精品成人综合色在线婷婷| 国产日韩精品一区二区三区| 欧美日韩在线播放| 欧美日本高清| 欧美精品日本|