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

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) 評論(0)  編輯 收藏 引用 所屬分類: Template
<2025年11月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

常用鏈接

留言簿(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久久久久久国产精品| 中文国产成人精品久久一| 欧美中文在线免费| 亚洲女人天堂av| 国产亚洲毛片在线| 免费欧美在线| 欧美国产视频在线| 亚洲伊人久久综合| 欧美一区二区精品| 亚洲第一在线综合网站| 亚洲国产一区二区三区青草影视| 久久躁日日躁aaaaxxxx| 99re视频这里只有精品| 亚洲一区二区三区高清不卡| 国内在线观看一区二区三区| 欧美激情无毛| 国产精品久久一级| 美女精品网站| 国产精品国色综合久久| 免费精品视频| 国产精品多人| 欧美岛国激情| 国产精品素人视频| 亚洲国产高清视频| 国产乱码精品一区二区三区五月婷 | 亚洲成人在线观看视频| 亚洲理伦在线| 亚洲第一精品在线| 亚洲午夜久久久久久尤物 | 国产欧美精品日韩精品| 免费在线观看精品| 国产精品久久7| 亚洲第一精品夜夜躁人人躁 | 久久精品在线免费观看| 亚洲视频福利| 欧美大片免费看| 久久久999精品免费| 欧美日韩一区在线| 欧美激情亚洲视频| 国产亚洲精品久久久久动| 亚洲乱码国产乱码精品精| 伊人色综合久久天天| 亚洲伊人久久综合| 亚洲小视频在线| 欧美不卡三区| 欧美大片专区| 在线播放中文字幕一区| 欧美一区二区三区精品| 亚洲欧美日本国产专区一区| 欧美国产日韩二区| 欧美www视频在线观看| 国内精品美女av在线播放| 亚洲网站视频福利| 亚洲视频在线观看三级| 欧美激情亚洲激情| 亚洲国产精品久久久| 亚洲国产乱码最新视频| 欧美伊人影院| 久久先锋资源| 永久91嫩草亚洲精品人人| 欧美一区二区在线免费播放| 欧美中文在线字幕| 国产日韩欧美麻豆| 午夜精品一区二区三区在线 | 在线看片日韩| 久久露脸国产精品| 麻豆久久婷婷| 亚洲人成7777| 欧美日韩成人激情| 一区二区三区国产| 亚洲欧美日韩国产成人| 国产欧美三级| 久久不见久久见免费视频1| 久久精品亚洲| 在线精品视频在线观看高清| 久久婷婷一区| 亚洲激情在线视频| 亚洲午夜电影在线观看| 国产精品一区二区男女羞羞无遮挡 | 一本一本久久a久久精品综合麻豆| 欧美激情一区二区三区四区| 亚洲免费av片| 欧美一区午夜精品| 黄色成人av网站| 免费观看在线综合| 99精品热6080yy久久| 欧美在线短视频| 亚洲电影免费观看高清完整版在线观看 | 免费h精品视频在线播放| 亚洲欧洲在线视频| 亚洲天堂av在线免费| 国产亚洲欧洲997久久综合| 久久久久久穴| 一本久久精品一区二区| 久久久欧美一区二区| 亚洲高清一区二区三区| 欧美日韩亚洲一区二区三区| 性久久久久久久久| 亚洲国产精品久久人人爱蜜臀| 一区二区免费在线播放| 国产专区综合网| 欧美乱大交xxxxx| 欧美在线免费一级片| 亚洲精品国产精品国自产在线| 久久精品国产999大香线蕉| 亚洲精品久久久久久一区二区| 国产精品久久久久免费a∨大胸| 久久久精彩视频| 一区二区黄色| 亚洲国产一区在线| 久久欧美中文字幕| 亚洲在线成人精品| 99re6这里只有精品| 韩国av一区二区三区在线观看| 欧美日韩国产区一| 欧美77777| 久久精品一区四区| 亚洲一区免费网站| 日韩西西人体444www| 欧美国产欧美亚洲国产日韩mv天天看完整 | 免费不卡在线观看| 久久精品成人| 午夜精品在线观看| 一区二区欧美精品| 亚洲乱码日产精品bd| 欧美国产三区| 欧美福利一区二区三区| 久久久久看片| 久久精品五月婷婷| 欧美在线一二三| 午夜精品一区二区三区在线播放| 日韩午夜剧场| 亚洲免费精品| 夜夜嗨av一区二区三区网站四季av| 亚洲国产精品成人精品| 在线免费观看日本欧美| 精品动漫3d一区二区三区| 国产一区二区久久久| 国产亚洲欧美日韩在线一区| 国产精品亚洲аv天堂网| 国产精品久久久久9999| 国产精品三区www17con| 国产精品亚洲视频| 国产欧美在线观看| 国产亚洲二区| 狠狠色丁香久久婷婷综合_中| 国产亚洲一区二区三区在线播放 | 欧美激情国产日韩| 欧美激情一区二区三区在线视频观看| 女人色偷偷aa久久天堂| 欧美久久九九| 欧美色欧美亚洲另类七区| 欧美日韩一区高清| 国产精品免费看久久久香蕉| 国产精品美女久久久久av超清| 国产精品美女久久久久久久| 国产精品日本欧美一区二区三区| 国产精品无人区| 国产一区二区三区高清在线观看| 黄色精品一区二区| 亚洲人午夜精品免费| 国产精品99久久久久久久vr | 久久综合狠狠综合久久激情| 女人色偷偷aa久久天堂| 亚洲区中文字幕| 亚洲视频在线观看网站| 久久国产乱子精品免费女| 免费高清在线一区| 欧美三区免费完整视频在线观看| 国产欧美日韩一区二区三区在线 | 欧美午夜宅男影院在线观看| 国产美女诱惑一区二区| 亚洲大胆女人| 这里是久久伊人| 久久久久久尹人网香蕉| 亚洲国产天堂久久综合| 亚洲女同精品视频| 巨乳诱惑日韩免费av| 国产精品久99| 91久久在线| 午夜精品久久久久久| 欧美成年网站| 亚洲一区二区三区精品在线| 久久综合中文| 国产精品一区二区在线观看| 亚洲激情第一区| 欧美中文字幕在线观看| 欧美激情精品久久久| 欧美一级视频免费在线观看| 欧美人与禽猛交乱配视频| 尤物九九久久国产精品的特点 | 一区二区三区日韩| 久热精品视频在线观看| 亚洲视频网在线直播| 欧美xxx成人| 在线欧美不卡| 久久国产精品久久国产精品| 99日韩精品| 欧美国产日产韩国视频| 一区在线观看|