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

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>
            欧美激情亚洲| 国产日韩欧美日韩| 在线视频亚洲| 夜久久久久久| 亚洲视频一二| 亚洲影视在线播放| 欧美一二区视频| 久久国产手机看片| 免费成人性网站| 欧美成人免费全部| 亚洲福利久久| 亚洲精品男同| 一本色道久久综合精品竹菊 | 久久久久久夜| 久久综合伊人77777| 欧美成人中文| 99在线观看免费视频精品观看| 在线视频欧美日韩精品| 香蕉久久夜色精品| 米奇777超碰欧美日韩亚洲| 欧美国产精品中文字幕| 99视频有精品| 欧美呦呦网站| 欧美啪啪成人vr| 国产三区精品| 亚洲精品国产系列| 欧美一区二区精美| 亚洲二区视频在线| 亚洲免费视频网站| 欧美96在线丨欧| 国产精品卡一卡二| 亚洲日本免费电影| 欧美制服丝袜第一页| 欧美激情精品久久久久久| 在线视频亚洲欧美| 猫咪成人在线观看| 国产欧美欧洲在线观看| 亚洲国产视频一区二区| 久久不射电影网| 99re热这里只有精品免费视频| 欧美一区激情| 国产精品久久久久久久久久直播| 在线观看成人小视频| 欧美一区二区观看视频| 亚洲精品网站在线播放gif| 欧美一区免费视频| 国产精品扒开腿做爽爽爽软件| 亚洲国产二区| 看欧美日韩国产| 午夜精品亚洲一区二区三区嫩草| 欧美日韩国产一区精品一区| 亚洲美女在线看| 欧美大片免费观看| 久久久久久网址| 亚洲私人影院在线观看| 欧美国产欧美综合| 亚洲福利专区| 一区二区三区蜜桃网| 亚洲高清自拍| 麻豆国产va免费精品高清在线| 国产日韩精品在线| 西西人体一区二区| 一本大道久久精品懂色aⅴ| 欧美福利视频网站| 亚洲精品视频免费| 亚洲国产美女精品久久久久∴| 久久免费视频一区| 精品福利免费观看| 免费看精品久久片| 男女激情久久| 欧美性猛交99久久久久99按摩| 一本久久综合亚洲鲁鲁五月天| 欧美国产激情| 欧美成人久久| 夜夜嗨av一区二区三区| 亚洲精品国产欧美| 欧美日韩国产综合网| 亚洲一二三区在线| 亚洲一区二区三区777| 国产精品一区免费视频| 久久久999精品| 久久免费一区| 亚洲最新在线视频| 亚洲一区激情| 国外精品视频| 亚洲第一在线视频| 欧美日韩精品免费观看视频| 亚洲欧美日韩人成在线播放| 欧美成人精品在线观看| 欧美黄网免费在线观看| 亚洲欧美制服另类日韩| 久久av在线看| 日韩视频免费在线| 亚洲一区网站| 伊人婷婷久久| 99re在线精品| 很黄很黄激情成人| 亚洲精品久久久久久一区二区| 国产精品久久毛片a| 麻豆精品传媒视频| 欧美午夜激情视频| 久久久久国产精品人| 欧美国产精品一区| 久久久精品2019中文字幕神马| 蜜臀av国产精品久久久久| 亚洲一区二区三区精品动漫| 亚洲欧美激情四射在线日| 亚洲高清成人| 亚洲午夜在线| 狠狠综合久久| 亚洲自啪免费| 免费观看不卡av| 亚洲午夜一区二区三区| 日韩一区二区精品葵司在线| 日韩一区二区精品| 在线午夜精品自拍| 好看不卡的中文字幕| 亚洲精品1234| 国产精品一区二区在线| 亚洲一区欧美一区| 美女视频网站黄色亚洲| 亚洲永久免费观看| 久久视频在线视频| 亚洲专区一区| 久久久五月天| 午夜精品影院| 欧美国产在线电影| 久久久精品性| 欧美三级中文字幕在线观看| 一区二区三区 在线观看视| 亚洲欧美成人| 在线午夜精品| 亚洲欧美一区二区在线观看| 亚洲深夜影院| 久久久久久久久久久久久女国产乱 | 亚洲欧美日韩精品久久久| 久久精视频免费在线久久完整在线看| 亚洲精品一区久久久久久 | 亚洲精品三级| 亚洲电影免费在线 | 亚洲激情视频在线观看| 国内外成人免费激情在线视频网站| 亚洲欧洲另类| 国产精品免费区二区三区观看| 亚洲人体偷拍| 亚洲激情在线视频| 久久精品人人做人人综合| 亚洲欧美制服中文字幕| 欧美日韩一区二区高清| 欧美一区二区播放| 国产一区二区精品久久| 亚洲五月婷婷| 亚洲一区二区在线免费观看| 欧美激情a∨在线视频播放| 欧美一区二区高清| 黄色一区二区三区| 久久精品国产亚洲一区二区| 久久精品1区| 国产婷婷97碰碰久久人人蜜臀| 亚洲欧美日韩直播| 免费成年人欧美视频| 伊人一区二区三区久久精品| 久久九九免费视频| 老司机午夜精品视频在线观看| 国内揄拍国内精品久久| 一区二区三区国产在线| 国产精品99久久久久久www| 欧美激情第六页| 亚洲免费高清| 午夜精品久久久久久久99樱桃| 精品不卡一区二区三区| 久久久国产一区二区三区| 国产精品久久久久影院亚瑟| 日韩一级免费观看| 久久av二区| 欧美高清视频一区二区| 亚洲三级免费观看| 99re66热这里只有精品4| 欧美精品一区在线| 免费成人网www| 亚洲欧美国产不卡| 国产一区二区视频在线观看| 久久久精品一区| 欧美黄色aaaa| 亚洲国产成人一区| 国产精品高潮呻吟久久av无限 | 国产精品影音先锋| 欧美在线免费看| 欧美黄色网络| 亚洲欧美激情精品一区二区| 国产精品久久久久一区| 午夜在线视频一区二区区别| 久久色中文字幕| 亚洲伦理在线观看| 国产欧美日本| 久久久久.com| 欧美va亚洲va香蕉在线| 亚洲视频免费| 在线观看av不卡| 国产精品久久久久久av福利软件|