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

Zero Lee的專欄

類模板的模板友元函數定義

類模板的模板友元函數定義有2種方式:
1. 將友元模板函數直接定義在類模板中。這種方式比較簡單直接。
2. 將友元模板函數聲明在類模板中,定義在類模板之外。這種方式的寫法,如果不小心,通常會出現編譯沒問題,鏈接時無法解析的錯誤。
以下是一個簡單的正確的例子:
 1 #include <iostream>
 2 #include <vector>
 3 
 4 template <typename T>
 5 class Number;
 6 
 7 template <typename T>
 8 void print(const Number<T>& n);
 9 
10 template <typename T>
11 std::ostream& operator << (std::ostream& os, const Number<T>& n);
12 
13 template <typename T>
14 std::istream& operator>>(std::istream& is, Number<T>& n);
15 
16 template <typename T, typename T2>
17 void printVector(const std::vector<T2>& vt, const Number<T>& n);
18 
19 template <typename T>
20 class Number {
21 public:
22     Number(T v) 
23         : val(v) {}
24     ~Number() {}
25 
26 private:
27     T val;
28 public:
29     friend void print<T> (const Number<T>& n);
30     friend std::ostream& operator << <T>(std::ostream& os, const Number<T>& n);
31     friend std::istream& operator>> <T>(std::istream& is, Number<T>& n);
32 
33     friend Number<T>& operator += (Number<T>& a, const Number<T>& b)
34     {
35         a.val += b.val;
36         return a;
37     }
38     template <typename T2>
39     friend void printVector<T>(const std::vector<T2>& vt, const Number<T>& n);
40     template <typename T2>
41     void memFunc(const std::vector<T2>& vt, const Number<T>& n);
42 };
43 
44 template <typename T>
45 std::ostream& operator <<(std::ostream& os, const Number<T>& n)
46 {
47      os << n.val << std::endl;
48      return os;
49 }
50 
51 template <typename T>
52 std::istream& operator >>(std::istream& is, Number<T>& n)
53 {
54     is >> n.val;
55     return is;
56 }
57 
58 template <typename T>
59 void print<T> (const Number<T>& n)
60 {
61     std::cout << n;
62 }
63 
64 template <typename T, typename T2>
65 void printVector(const std::vector<T2>& vt, const Number<T>& n)
66 {
67     for (unsigned int i = 0; i < vt.size(); i++)
68         std::cout << vt.at(i) << " ";
69     std::cout << "=> " << n;
70 }
71 
72 template <typename T>
73 template <typename T2>
74 void Number<T>::memFunc(const std::vector<T2>& vt, const Number<T>& n)
75 {
76     for (unsigned int i = 0; i < vt.size(); i++)
77         std::cout << vt.at(i) << " ";
78     std::cout << "=> " << n;
79 }
80 

1) 以上代碼中,operator +=被定義在類模板內部。其他3個函數先被聲明(需提前聲明類模板,如果模板函數的參數中含有類模板),然后在類模板中被聲明為友元函數, 之后被定義在類模板體之外。
2) 請注意當模板函數被聲明為類模板的友元時,在函數名之后必須緊跟模板實參表,用來代表該友元聲明指向函數模板的實例。否則友元函數會被解釋為一個非模板函數,鏈接時無法解析。
3) 友元模板函數的模板參數類型,并不一定要求是類模板的參數類型,也可以另外聲明。


posted on 2010-11-03 22:42 Zero Lee 閱讀(2435) 評論(0)  編輯 收藏 引用


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


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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久久| 亚洲第一毛片| 国产欧美日韩在线播放| 欧美激情在线| 奶水喷射视频一区| 久久免费高清| 久久精视频免费在线久久完整在线看| 亚洲巨乳在线| 99re热精品| 日韩一区二区免费高清| 亚洲激情六月丁香| 午夜欧美不卡精品aaaaa| 亚洲午夜未删减在线观看| 一区二区三区欧美| 亚洲欧美激情在线视频| 亚洲女优在线| 久久精品成人一区二区三区蜜臀| 久久成人久久爱| 亚洲精品视频免费| 一区二区高清视频| 一区二区三区导航| 亚洲理论在线| 亚洲色图自拍| 亚洲欧美久久久| 性色一区二区| 久久综合综合久久综合| 欧美一级片一区| 欧美视频导航| 国产日韩av在线播放| 国产精品超碰97尤物18| 国产亚洲日本欧美韩国| 樱花yy私人影院亚洲| 亚洲国产激情| 国精品一区二区三区| 亚洲精品网址在线观看| 亚洲一卡久久| 久久精品国产亚洲精品| 欧美国产日韩精品免费观看| 亚洲日本无吗高清不卡| 欧美日韩视频第一区| 欧美承认网站| 亚洲精品免费一二三区| 国产精品99久久久久久宅男| 欧美一区三区二区在线观看| 免费成人黄色av| 国产精品一二三四| 在线观看日韩av电影| 伊人狠狠色j香婷婷综合| 夜夜嗨av色一区二区不卡| 亚洲欧美一区二区视频| 欧美 日韩 国产一区二区在线视频| 亚洲激情第一区| 亚洲欧美久久| 欧美精品一区二区在线观看| 欧美成人午夜激情| 国产精品一区久久久| 91久久精品一区二区别| 欧美亚洲三级| 久久一区激情| 夜夜嗨av一区二区三区网站四季av| 欧美一区二区精美| 国产精品v欧美精品v日本精品动漫 | 国产真实久久| 午夜精品一区二区三区电影天堂| 欧美高清在线播放| 亚洲黄色大片| 91久久极品少妇xxxxⅹ软件| 女同一区二区| 日韩一级视频免费观看在线| 亚洲裸体俱乐部裸体舞表演av| 欧美日本一道本| 一区二区高清| 亚洲午夜激情免费视频| 国产精品一区二区视频| 欧美中文字幕视频| 久久久久久97三级| 亚洲精品乱码久久久久久蜜桃麻豆| 欧美aa国产视频| 欧美精品系列| 欧美亚洲视频一区二区| 久久久久久亚洲综合影院红桃 | 亚洲一区二区三区视频播放| 亚洲美女少妇无套啪啪呻吟| 欧美日韩aaaaa| 性刺激综合网| 久久永久免费| 一本色道久久加勒比精品| 亚洲一区二区3| 亚洲高清视频一区二区| 夜夜嗨网站十八久久| 国产美女精品人人做人人爽| 欧美伊人精品成人久久综合97| 日韩亚洲欧美成人一区| 国产视频亚洲精品| 欧美大片在线看| 欧美少妇一区| 开心色5月久久精品| 欧美激情麻豆| 久久成人这里只有精品| 欧美黄色成人网| 久久久亚洲国产美女国产盗摄| 欧美大片在线观看一区| 欧美中文字幕不卡| 欧美久久影院| 久久视频精品在线| 欧美激情一区二区三区在线视频 | 狠狠爱www人成狠狠爱综合网| 欧美成人精品三级在线观看| 欧美午夜美女看片| 久久久久久日产精品| 欧美片在线观看| 欧美福利电影在线观看| 国产精品久久久久久影视| 欧美激情影院| 狠狠狠色丁香婷婷综合激情| 亚洲午夜精品福利| 亚洲韩国青草视频| 欧美一区二区三区免费看| 亚洲尤物精选| 欧美人与性禽动交情品| 免费观看日韩| 激情小说亚洲一区| 久久精品视频播放| 欧美一级免费视频| 国产精品亚洲а∨天堂免在线| 一本久久综合亚洲鲁鲁五月天| 亚洲精品午夜| 欧美大片18| 亚洲国产精品成人一区二区| 亚洲国产精品第一区二区| 久久国产精品第一页| 欧美在线观看一区| 国产精品一区二区男女羞羞无遮挡| 亚洲精品1234| 一区二区三区四区五区在线| 欧美黑人一区二区三区| 亚洲福利电影| av不卡在线看| 欧美国产日韩精品| 最近中文字幕日韩精品| 亚洲精品之草原avav久久| 欧美xx69| 亚洲日韩欧美视频一区| 一本色道久久综合亚洲精品不 | 久久综合图片| 六月婷婷久久| 怡红院av一区二区三区| 久久免费黄色| 亚洲国产高清aⅴ视频| 99riav国产精品| 亚洲国产精品v| 亚洲伦理精品| 亚洲欧美久久久久一区二区三区| 国产精品久久激情| 亚洲综合精品| 免费在线一区二区| 日韩一级视频免费观看在线| 欧美日韩xxxxx| 亚洲一区欧美一区| 久久一区二区三区四区| 亚洲乱码国产乱码精品精可以看| 欧美日韩国产限制| 亚洲免费网站| 亚洲第一中文字幕| 午夜国产不卡在线观看视频| 国产一区二区中文字幕免费看| 蜜臀av性久久久久蜜臀aⅴ| 亚洲美女尤物影院| 久久蜜桃精品| 一区二区欧美国产| 国产免费观看久久| 欧美国产日韩xxxxx| 亚洲一区亚洲| 欧美激情麻豆| 久久久精品tv| 亚洲视频免费看| 韩日精品在线| 国产精品xnxxcom| 母乳一区在线观看| 欧美一区二区精品在线| 99pao成人国产永久免费视频| 久久久人成影片一区二区三区观看 | 中日韩美女免费视频网址在线观看 | 久久香蕉国产线看观看av| 日韩视频三区| 蜜臀av性久久久久蜜臀aⅴ四虎| 亚洲一级片在线观看| 亚洲成色精品| 国产伦精品免费视频 | 欧美人妖在线观看| 久久精品国产69国产精品亚洲| 亚洲精品在线视频| 免费观看国产成人| 久久er99精品| 亚洲永久精品国产| 中日韩午夜理伦电影免费| 91久久精品一区二区别| 激情欧美日韩一区| 国产日韩欧美不卡在线|