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

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>
            在线亚洲国产精品网站| 欧美人与性动交α欧美精品济南到| 久久丁香综合五月国产三级网站| 国产精品久久久免费| 欧美在线一二三四区| 午夜精品久久一牛影视| 狼人社综合社区| 久久五月激情| 国产在线拍偷自揄拍精品| 亚洲综合精品| 欧美专区一区二区三区| 欧美日韩精品免费在线观看视频| 久久久久www| 国产精品久久91| 亚洲精品乱码久久久久久黑人 | 一本色道久久综合亚洲91| 91久久国产综合久久| 免费视频亚洲| 亚洲经典视频在线观看| 一区二区激情小说| 国产精品家庭影院| 欧美一区二区三区在线视频| 久久综合伊人| 亚洲精选大片| 国产精品久久夜| 久久都是精品| 亚洲国产成人精品久久久国产成人一区 | 欧美日韩免费高清一区色橹橹| 亚洲精品久久久久久下一站| 久久婷婷影院| 欧美性片在线观看| 亚洲手机在线| 久久久久国产精品午夜一区| 欲香欲色天天天综合和网| 蜜臀av性久久久久蜜臀aⅴ四虎| 亚洲国产精品一区二区第一页 | 欧美一区午夜视频在线观看| 国产一级一区二区| 欧美亚洲视频一区二区| 久久久久国产精品麻豆ai换脸| 激情偷拍久久| 欧美黄色aaaa| 午夜精品久久久久久久白皮肤 | 亚洲一区精品视频| 国产手机视频精品| 欧美成人视屏| 亚洲欧美久久| 亚洲国产精品一区制服丝袜| 香蕉久久夜色| 在线不卡视频| 国产精品久久久久aaaa| 久久男人资源视频| 一区二区电影免费观看| 免费在线国产精品| 亚洲影院色无极综合| 精品成人在线观看| 国产精品大全| 欧美激情第3页| 久久国产精品第一页| 亚洲六月丁香色婷婷综合久久| 久久久国产精品一区| 在线综合+亚洲+欧美中文字幕| 韩国精品久久久999| 欧美理论大片| 另类国产ts人妖高潮视频| 亚洲欧美一区二区三区极速播放| 亚洲国产精品久久久| 久久久国产亚洲精品| 亚洲欧美电影院| 99re66热这里只有精品3直播 | 国产精品久久久久久久久搜平片 | 亚洲调教视频在线观看| 欧美国产精品久久| 久久国产一区| 亚洲欧美中文日韩在线| 夜夜嗨av色一区二区不卡| 欧美一区二视频在线免费观看| 欧美日韩一区精品| 国产精品免费福利| 免费成人av| 性欧美超级视频| 一区二区三区免费网站| 最新中文字幕一区二区三区| 欧美成人午夜激情在线| 久久久久国内| 欧美专区亚洲专区| 亚洲欧美亚洲| 亚洲伊人观看| 宅男噜噜噜66国产日韩在线观看| 亚洲国内精品| 在线看无码的免费网站| 国户精品久久久久久久久久久不卡| 国产精品美女一区二区| 欧美日韩免费观看一区三区 | 欧美黄色影院| 欧美1区3d| 蜜臀av一级做a爰片久久| 另类春色校园亚洲| 麻豆国产va免费精品高清在线| 久久精品网址| 在线精品视频在线观看高清| 一区二区三区欧美激情| 亚洲欧洲日本国产| 亚洲高清一区二| 亚洲电影成人| 亚洲国产导航| 亚洲人成小说网站色在线| 久久综合国产精品| 久久人91精品久久久久久不卡| 久久久精品国产99久久精品芒果| 午夜在线观看免费一区| 午夜精品美女久久久久av福利| 午夜一区在线| 久久精品国产免费观看| 久久久久国产精品厨房| 老司机精品视频网站| 欧美激情精品久久久久久| 亚洲国产日韩欧美在线图片| 亚洲国产成人精品久久| 日韩午夜高潮| 亚洲欧美日韩成人高清在线一区| 亚洲女性裸体视频| 久久精品亚洲一区二区| 日韩亚洲欧美精品| 99视频有精品| 久久久精彩视频| 亚洲线精品一区二区三区八戒| 欧美成人国产| 99国产精品视频免费观看| 一区二区久久久久| 香蕉精品999视频一区二区| 久久久久久久久一区二区| 欧美.www| 国产精品美女久久久久aⅴ国产馆| 国产欧美一区二区在线观看| 揄拍成人国产精品视频| 在线视频亚洲一区| 久久久久九九九| 亚洲国产国产亚洲一二三| 这里是久久伊人| 久久精品一区二区三区不卡| 欧美国产亚洲视频| 国产精品一区二区你懂的| 亚洲国产高清一区| 亚洲欧美久久久久一区二区三区| 久热成人在线视频| 一区二区日韩| 蜜臀久久久99精品久久久久久| 久久久久综合| 国产精品99久久久久久久vr| 亚洲欧美国产高清| 亚洲视频精品| 久久亚洲综合网| 国产精品jvid在线观看蜜臀| 激情成人综合| 午夜电影亚洲| 亚洲第一网站免费视频| 亚洲一区二区三区在线| 欧美成人免费网站| 国产一区二区在线观看免费| 一本高清dvd不卡在线观看| 久久精品在线免费观看| 亚洲蜜桃精久久久久久久| 久久久久久久国产| 国产精品视频九色porn| 夜夜嗨av色一区二区不卡| 久久综合给合| 亚洲欧美高清| 欧美午夜宅男影院在线观看| 亚洲国产高清自拍| 久久国产精品久久精品国产 | 亚洲国产精品一区二区www在线| 亚洲欧美国产va在线影院| 亚洲精品婷婷| 亚洲国产另类久久精品| 亚洲欧洲精品天堂一级| 亚洲国产视频a| 欧美国产精品中文字幕| 亚洲免费视频在线观看| 亚洲第一毛片| 欧美在线观看视频| 国产精品久久国产精麻豆99网站| 亚洲精品一级| 欧美黄色片免费观看| 亚洲国产一区二区三区高清| 欧美电影免费观看网站| 欧美精品在线免费播放| 欧美日韩国产欧美日美国产精品| 精品二区视频| 久久久久久久综合色一本| 亚洲欧美在线免费| 国产精品一区二区黑丝| 亚洲欧美综合精品久久成人| 亚洲婷婷在线| 国产精品午夜久久| 午夜精品久久久久久久| 亚洲视频电影图片偷拍一区| 欧美性开放视频| 欧美一区二区高清在线观看| 亚洲欧美大片|