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

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 閱讀(470) 評(píng)論(0)  編輯 收藏 引用 所屬分類: Template

只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


<2025年11月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

常用鏈接

留言簿(10)

隨筆分類(307)

隨筆檔案(297)

algorithm

Books_Free_Online

C++

database

Linux

Linux shell

linux socket

misce

  • cloudward
  • 感覺這個(gè)博客還是不錯(cuò),雖然做的東西和我不大相關(guān),覺得看看還是有好處的

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

搜索

  •  

最新評(píng)論

閱讀排行榜

評(píng)論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            亚洲精品孕妇| 日韩一级片网址| 欧美日本不卡视频| 亚洲一区二区在线视频| 欧美成人午夜激情| 亚洲伊人网站| 亚洲精品激情| 黄色成人免费观看| 国产精品红桃| 欧美日本在线| 国产精品高潮粉嫩av| 欧美日韩在线另类| 欧美黄色aa电影| 麻豆国产精品777777在线| 欧美亚洲三级| 亚洲欧美怡红院| 亚洲一区欧美二区| 欧美在线高清视频| 亚洲欧美视频在线观看| 欧美呦呦网站| 欧美凹凸一区二区三区视频| 久久久久免费观看| 欧美专区在线观看一区| 久久影院午夜论| 久久久久久久综合色一本| 欧美~级网站不卡| 两个人的视频www国产精品| 欧美激情精品久久久久久大尺度| 欧美日韩综合不卡| 欧美性猛交xxxx乱大交退制版| 欧美乱妇高清无乱码| 国产精品极品美女粉嫩高清在线 | 欧美一区二区观看视频| 亚洲一级黄色片| 亚洲一区尤物| 久久在线观看视频| 麻豆久久久9性大片| 久热综合在线亚洲精品| 亚洲国产精品悠悠久久琪琪| 一区二区三区导航| 99国产精品久久久久久久| 欧美在线视频导航| 久久精品成人一区二区三区| 久久精品最新地址| 久色成人在线| 一本久久a久久免费精品不卡| 一区二区免费在线视频| 久久精品一本| 免费中文日韩| 国产欧美日韩中文字幕在线| 国产综合网站| 亚洲国产高清一区二区三区| 亚洲高清av在线| 亚洲欧美日韩在线| 久久全球大尺度高清视频| 免费人成网站在线观看欧美高清| 免费欧美网站| 亚洲一区三区电影在线观看| 麻豆亚洲精品| 国产日韩在线播放| 亚洲第一精品夜夜躁人人爽| 日韩一二三在线视频播| 久久免费视频在线| 正在播放亚洲一区| 欧美中在线观看| 欧美色区777第一页| 亚洲国产美国国产综合一区二区| 一本一本久久| 久久精品成人一区二区三区| avtt综合网| 欧美主播一区二区三区| 国产精品久久久久91| 亚洲蜜桃精久久久久久久| 久久香蕉国产线看观看网| 亚洲欧美精品suv| 美乳少妇欧美精品| 国内伊人久久久久久网站视频| 亚洲永久免费| 亚洲精品婷婷| 欧美一二三区精品| 国产精品日韩二区| 亚洲激情黄色| 免费的成人av| 久久久噜噜噜久久中文字幕色伊伊| 国产精品夜色7777狼人| 亚洲女同在线| 亚洲天天影视| 免费成人性网站| 狠狠色综合日日| 久久久精品网| 欧美专区在线观看| 国产一区二区福利| 亚洲性xxxx| 在线视频亚洲欧美| 欧美香蕉视频| 午夜一区二区三区不卡视频| 亚洲观看高清完整版在线观看| 亚洲专区一二三| 国产精品一二一区| 亚洲精品资源美女情侣酒店| 欧美高清在线视频| 理论片一区二区在线| 亚洲国产成人不卡| 亚洲高清视频一区| 欧美激情精品久久久久久大尺度 | 免费高清在线视频一区·| 一区二区三区中文在线观看| 亚洲自拍啪啪| 亚洲男人天堂2024| 国产一区二区中文字幕免费看| 久久久精品网| 免费视频一区| 亚洲最新在线视频| 亚洲视频一区在线| 国产欧美韩日| 蜜臀91精品一区二区三区| 麻豆国产va免费精品高清在线| 亚洲精品一区二| 99re热这里只有精品免费视频| 欧美高清视频| 亚洲一区二区三区免费在线观看 | 久久精品一区二区| 久久久久久久精| 亚洲另类春色国产| 一区二区三区四区国产| 国产日韩亚洲欧美| 欧美成人自拍视频| 欧美日韩一区二区视频在线| 午夜伦欧美伦电影理论片| 亚洲免费不卡| 国产日韩欧美一二三区| 欧美成人精品在线观看| 久久久国产精品亚洲一区| 亚洲欧洲在线一区| 欧美国产在线电影| 免费亚洲电影在线观看| 亚洲一区免费看| 久久精品成人欧美大片古装| 国产一区视频网站| 亚洲激情网址| 欧美欧美在线| 久久岛国电影| 欧美极品一区| 亚洲视频导航| 亚洲一区黄色| 91久久国产自产拍夜夜嗨| avtt综合网| 亚洲福利专区| 午夜在线a亚洲v天堂网2018| 国产一区二区三区在线观看精品 | 亚洲欧美www| 久久在线免费视频| 欧美亚洲视频一区二区| 久色成人在线| 久久爱www久久做| 欧美日本在线观看| 免费成人黄色| 国产日韩欧美三级| 一本久久综合| 亚洲破处大片| 久久精品国产欧美激情| 亚洲主播在线| 欧美福利视频在线观看| 久久久精品国产一区二区三区| 欧美日韩视频在线一区二区| 裸体歌舞表演一区二区| 国产精品入口麻豆原神| 亚洲毛片av| 91久久久亚洲精品| 久久精彩视频| 欧美一站二站| 国产精品豆花视频| 亚洲精品乱码久久久久久久久| 欧美日韩不卡视频| 欧美在线视频一区| 欧美日韩综合在线| 亚洲电影专区| 亚洲福利国产精品| 欧美中日韩免费视频| 亚洲欧美日韩一区| 欧美偷拍一区二区| 亚洲人午夜精品| 亚洲黄一区二区| 久久久免费观看视频| 久久精品国产精品亚洲综合| 国产精品久久一卡二卡| 蜜臀99久久精品久久久久久软件| 国产日韩欧美一二三区| 亚洲一级影院| 亚洲在线电影| 国产精品成人在线| 99伊人成综合| 亚洲视频专区在线| 欧美日韩视频在线观看一区二区三区| 亚洲国产精品一区二区www在线| 精品动漫3d一区二区三区| 久久精品二区亚洲w码| 久久久久综合网| 好吊成人免视频| 久久久999国产|