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

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>
            在线亚洲观看| 9人人澡人人爽人人精品| 欧美精品二区| 欧美高清不卡在线| 亚洲精品乱码久久久久久久久 | 亚洲午夜一区二区| 欧美高清在线精品一区| 91久久久国产精品| 亚洲精品国产品国语在线app| 欧美肥婆bbw| av成人毛片| 欧美一区二区啪啪| 激情久久久久久久| 欧美日韩精品综合在线| 亚洲专区在线| 欧美国内亚洲| 亚洲欧美国产日韩天堂区| 国产亚洲欧美另类一区二区三区| 久久婷婷色综合| 一本到12不卡视频在线dvd | 亚洲国产欧美一区二区三区久久| 亚洲一区二区三区色| 国内自拍视频一区二区三区| 欧美国产日韩精品免费观看| 亚洲桃花岛网站| 欧美不卡激情三级在线观看| 亚洲一区二区黄色| 在线播放精品| 国产精品一区二区在线| 欧美精品久久久久久| 久久久精品2019中文字幕神马| 正在播放亚洲一区| 欧美激情一区二区久久久| 欧美一区午夜精品| 中日韩美女免费视频网址在线观看 | 亚洲国产精品一区二区第四页av | 免费中文字幕日韩欧美| 亚洲欧美一区二区视频| 亚洲免费成人av| 亚洲风情亚aⅴ在线发布| 国产精品亚洲激情| 亚洲日韩成人| 亚洲国产成人久久| 国产视频精品xxxx| 欧美日韩大陆在线| 欧美国产精品v| 久久亚洲影院| 久久久美女艺术照精彩视频福利播放| 中文在线资源观看网站视频免费不卡| 亚洲国产精品久久人人爱蜜臀| 久久综合九色综合欧美就去吻| 亚洲欧美日韩系列| 亚洲欧美日韩国产一区| 一区二区激情视频| 99在线精品视频在线观看| 亚洲高清视频一区二区| 国色天香一区二区| 黑丝一区二区| 精品二区视频| 亚洲第一网站免费视频| 在线不卡亚洲| 亚洲国产视频直播| 亚洲经典一区| 日韩一级在线观看| 一本色道久久综合| 一区二区免费在线播放| 一区二区欧美日韩| 午夜久久一区| 久久精品国产99| 久久夜色精品| 欧美激情国产高清| 亚洲精品专区| 亚洲影视九九影院在线观看| 亚洲欧美综合| 久久精品人人做人人综合| 久久亚洲不卡| 欧美日韩免费在线| 国产欧美另类| 亚洲国产视频一区二区| 一本久久综合| 久久超碰97中文字幕| 麻豆91精品91久久久的内涵| 欧美国产日韩在线观看| 99精品视频免费观看视频| 亚洲综合好骚| 久色成人在线| 国产精品三区www17con| 在线观看91精品国产麻豆| 日韩视频在线播放| 欧美一区二区视频网站| 欧美11—12娇小xxxx| 亚洲免费成人| 久久久一区二区| 欧美日韩免费高清| 国产一区二区视频在线观看| 亚洲国产91色在线| 欧美激情区在线播放| 亚洲一区区二区| 久热成人在线视频| 国产精品一区一区三区| 91久久精品国产91性色| 欧美一区二区黄| 亚洲国产欧美不卡在线观看| 亚洲综合丁香| 欧美三级在线播放| 亚洲欧洲一区二区三区在线观看 | 国产女精品视频网站免费 | 久久九九全国免费精品观看| 亚洲黄色性网站| 久久久久久网站| 国产美女精品人人做人人爽| 亚洲国产精选| 久久久久.com| 国产精品99久久久久久www| 另类av导航| 激情自拍一区| 欧美在线不卡视频| 99热免费精品在线观看| 欧美顶级艳妇交换群宴| 伊人久久大香线| 久久精品亚洲精品| 欧美一级淫片播放口| 国产精品久久久久久亚洲毛片| 99re66热这里只有精品4| 男女精品网站| 久久久夜色精品亚洲| 国产亚洲一区在线| 欧美在线亚洲| 性感少妇一区| 国产在线视频欧美| 久久久一区二区三区| 欧美一区二区三区在线看 | 欧美久久视频| 亚洲每日更新| 一本久道久久综合中文字幕| 欧美视频网址| 性久久久久久久久久久久| 一区二区冒白浆视频| 国产精品国产三级国产专播精品人 | 欧美自拍偷拍午夜视频| 国产日韩在线不卡| 久久精品卡一| 久久久免费av| 亚洲久色影视| 亚洲免费电影在线| 欧美午夜电影完整版| 亚洲欧美日韩一区| 午夜欧美精品| 一区二区三区在线免费视频| 欧美私人网站| 国产亚洲一区二区三区在线播放| 欧美一区不卡| 久久激情视频久久| 亚洲国产成人精品女人久久久 | 美日韩在线观看| 欧美成人午夜激情在线| 亚洲视频在线观看三级| 亚洲欧美日韩国产| 亚洲第一中文字幕| 99热精品在线| 影音先锋亚洲视频| 亚洲国产天堂久久国产91| 欧美午夜大胆人体| 久久香蕉国产线看观看网| 免费日韩av片| 香蕉久久国产| 美日韩在线观看| 亚洲欧美中文另类| 另类欧美日韩国产在线| 宅男噜噜噜66一区二区| 久久精品国产免费| 亚洲婷婷在线| 卡一卡二国产精品| 欧美在线一二三| 欧美日韩1区2区| 久久色在线播放| 欧美三级韩国三级日本三斤| 久久久久久久久久久久久9999| 欧美另类99xxxxx| 久久综合久色欧美综合狠狠| 欧美日韩大片| 亚洲国产国产亚洲一二三| 国产女人精品视频| 一区二区三区久久| 最近看过的日韩成人| 久久成人精品无人区| 亚洲免费一级电影| 欧美激情精品久久久久久大尺度 | 亚洲乱码日产精品bd| 亚洲欧美综合| 亚洲欧美在线x视频| 欧美超级免费视 在线| 久久本道综合色狠狠五月| 欧美日韩一区二区三区免费| 免费日韩一区二区| 韩国欧美一区| 久久超碰97中文字幕| 久久99伊人| 国产美女一区| 亚洲在线成人精品|