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

posts - 297,  comments - 15,  trackbacks - 0
If we want to define a different implementation for a template when a specific type is passed as template parameter, we can declare a specialization of that template.

For example, let's suppose that we have a very simple class called mycontainer that can store one element of any type and that it has just one member function called increase, which increases its value. But we find that when it stores an element of type char it would be more convenient to have a completely different implementation with a function member uppercase, so we decide to declare a class template specialization for that type:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
// template specialization
#include <iostream>
using namespace std;

// class template:
template <class T>
class mycontainer {
T element;
public:
mycontainer (T arg) {element=arg;}
T increase () {return ++element;}
};

// class template specialization:
template <>
class mycontainer <char> {
char element;
public:
mycontainer (char arg) {element=arg;}
char uppercase ()
{
if ((element>='a')&&(element<='z'))
element+='A'-'a';
return element;
}
};

int main () {
mycontainer<int> myint (7);
mycontainer<char> mychar ('j');
cout << myint.increase() << endl;
cout << mychar.uppercase() << endl;
return 0;
}
8
J


This is the syntax used in the class template specialization:

 
template <> class mycontainer <char> { ... };


First of all, notice that we precede the class template name with an empty template<> parameter list. This is to explicitly declare it as a template specialization.

But more important than this prefix, is the <char> specialization parameter after the class template name. This specialization parameter itself identifies the type for which we are going to declare a template class specialization ( char). Notice the differences between the generic class template and the specialization:

1
2
template <class T> class mycontainer { ... };
template <> class mycontainer <char> { ... };


The first line is the generic template, and the second one is the specialization.

When we declare specializations for a template class, we must also define all its members, even those exactly equal to the generic template class, because there is no "inheritance" of members from the generic template to the specialization.

from:
http://www.cplusplus.com/doc/tutorial/templates/

posted on 2010-05-03 22:11 chatler 閱讀(471) 評論(0)  編輯 收藏 引用 所屬分類: Template
<2010年5月>
2526272829301
2345678
9101112131415
16171819202122
23242526272829
303112345

常用鏈接

留言簿(10)

隨筆分類(307)

隨筆檔案(297)

algorithm

Books_Free_Online

C++

database

Linux

Linux shell

linux socket

misce

  • cloudward
  • 感覺這個博客還是不錯,雖然做的東西和我不大相關,覺得看看還是有好處的

network

OSS

  • Google Android
  • Android is a software stack for mobile devices that includes an operating system, middleware and key applications. This early look at the Android SDK provides the tools and APIs necessary to begin developing applications on the Android platform using the Java programming language.
  • os161 file list

overall

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            国产精品久久久91| 国产精品三上| 欧美精品免费在线| 欧美激情第9页| 欧美理论电影网| 欧美日韩国产麻豆| 国产精品久久久久国产a级| 欧美视频免费在线| 国产精品视频久久久| 国产精品日韩精品欧美在线| 国产欧美日韩在线| 国产在线不卡| 亚洲国产精品悠悠久久琪琪| 亚洲精品美女91| 亚洲视频专区在线| 欧美一级久久久| 久久久噜噜噜久噜久久| 欧美成人一品| 亚洲精品中文在线| 亚洲综合大片69999| 久久精品夜色噜噜亚洲a∨ | 亚洲欧美日韩精品久久久| 亚洲欧美日韩国产精品| 久久久91精品国产| 欧美黄色日本| 一区二区高清视频| 欧美在线观看天堂一区二区三区| 老牛嫩草一区二区三区日本| 欧美日韩亚洲三区| 国产一区二区日韩| 亚洲精品国产欧美| 午夜精品区一区二区三| 免费久久99精品国产自在现线| 亚洲精品中文字| 性亚洲最疯狂xxxx高清| 你懂的亚洲视频| 国产精品萝li| 亚洲欧洲精品一区| 欧美亚洲色图校园春色| 欧美黑人在线观看| 亚洲伊人色欲综合网| 美女啪啪无遮挡免费久久网站| 国产精品swag| 亚洲国产婷婷| 久久国产精品色婷婷| 91久久久国产精品| 亚洲欧美三级伦理| 欧美精品久久天天躁| 国产在线观看精品一区二区三区 | 亚洲一级影院| 免费观看日韩| 国产日韩欧美一区| 夜夜爽夜夜爽精品视频| 玖玖精品视频| 亚洲自啪免费| 欧美日韩精品一区二区天天拍小说 | 麻豆91精品91久久久的内涵| 在线综合欧美| 欧美成人国产一区二区| 国产在线一区二区三区四区| 亚洲视频在线观看免费| 欧美激情国产精品| 欧美在线观看视频一区二区三区| 欧美三级视频| 亚洲精品午夜| 久热成人在线视频| 亚洲欧美在线aaa| 欧美三级日本三级少妇99| 亚洲激情黄色| 乱码第一页成人| 欧美一区1区三区3区公司| 欧美视频日韩| 一级日韩一区在线观看| 欧美激情一区二区久久久| 久久激情婷婷| 国产视频一区欧美| 午夜在线精品偷拍| 亚洲视频自拍偷拍| 欧美色中文字幕| 在线视频亚洲欧美| 亚洲黄页视频免费观看| 久久综合九色综合欧美狠狠| 狠狠久久综合婷婷不卡| 久久九九全国免费精品观看| 亚洲一区二区三区视频播放| 欧美日韩国产免费观看| 日韩亚洲欧美一区| 亚洲欧洲久久| 欧美激情综合五月色丁香小说| 亚洲电影在线播放| 免费永久网站黄欧美| 久久久久久久97| 一区二区亚洲| 农村妇女精品| 蜜桃av噜噜一区| 亚洲日本在线观看| 亚洲国产美女久久久久| 欧美韩国一区| 夜夜嗨网站十八久久| 亚洲精品国产精品国自产观看浪潮 | 久久免费视频观看| 一区在线播放| 欧美成人亚洲成人| 欧美成人激情视频免费观看| 91久久精品日日躁夜夜躁欧美 | 一本色道婷婷久久欧美| 亚洲欧洲综合| 欧美三级电影大全| 午夜在线不卡| 欧美在线视频观看| 尤物网精品视频| 亚洲高清不卡在线观看| 欧美久色视频| 亚洲欧美在线网| 欧美影院久久久| 亚洲国产精品成人| 亚洲精品综合久久中文字幕| 国产精品高潮呻吟久久av无限| 欧美一级淫片aaaaaaa视频| 欧美与黑人午夜性猛交久久久| 在线播放日韩欧美| 亚洲精品视频在线观看免费| 欧美系列精品| 久久日韩粉嫩一区二区三区| 免费不卡在线观看av| 亚洲视频中文字幕| 性做久久久久久| 亚洲黄色一区二区三区| 亚洲精品视频在线观看免费| 国产精品一区二区三区四区| 美女脱光内衣内裤视频久久影院| 欧美高清视频在线| 欧美一二三区在线观看| 久久综合国产精品| 亚洲一区二区三区乱码aⅴ蜜桃女 亚洲一区二区三区乱码aⅴ | 亚洲影院色无极综合| 欧美在线视频观看| 亚洲开发第一视频在线播放| 亚洲一级黄色av| 在线日本成人| 中文av一区特黄| 尤物yw午夜国产精品视频明星| 亚洲精品免费观看| 国产真实久久| 99热在线精品观看| 又紧又大又爽精品一区二区| 一片黄亚洲嫩模| 一区在线免费观看| 一区二区三区国产精华| 亚洲高清久久| 亚洲欧美日韩精品久久亚洲区 | 久久久久88色偷偷免费| 一区二区三区黄色| 久久久999| 午夜精品短视频| 欧美aⅴ99久久黑人专区| 午夜在线观看免费一区| 欧美激情一区二区| 久久久综合精品| 欧美午夜精品久久久久久浪潮| 能在线观看的日韩av| 国产精品午夜视频| 亚洲精品乱码视频| 尤物网精品视频| 亚洲欧美国产视频| 一区二区国产日产| 久久夜色精品国产欧美乱极品| 性色av一区二区三区| 欧美日韩成人综合| 欧美肥婆在线| 国产一区二区成人久久免费影院| 99国产精品国产精品久久 | 欧美激情一二区| 国产午夜久久| 中文高清一区| 中文网丁香综合网| 欧美成人精品一区| 麻豆久久婷婷| 国产最新精品精品你懂的| 亚洲亚洲精品三区日韩精品在线视频 | 久久这里有精品视频| 久久精品久久99精品久久| 国产精品久久久999| 99精品国产在热久久下载| 亚洲精品五月天| 欧美超级免费视 在线| 蜜臀av性久久久久蜜臀aⅴ| 国产一区二区三区黄| 午夜老司机精品| 欧美在线不卡| 国产欧美精品日韩精品| 亚洲一区欧美二区| 午夜免费电影一区在线观看| 国产精品国内视频| 在线视频日韩精品| 午夜精品久久久久久久99水蜜桃| 欧美特黄一级| 亚洲一区二区三区乱码aⅴ| 亚洲欧美综合| 国产精品一区免费视频|