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

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 閱讀(464) 評論(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
  • 感覺這個博客還是不錯,雖然做的東西和我不大相關(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

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            亚洲国产精品一区二区www在线| 亚洲一二区在线| 香蕉av777xxx色综合一区| 一本色道久久综合亚洲二区三区| 欧美日韩国产影院| 亚洲影音先锋| 欧美在线亚洲| 亚洲国产一区二区视频| 亚洲精品久久久久久下一站 | 欧美精品v日韩精品v国产精品| 日韩写真视频在线观看| 99视频在线精品国自产拍免费观看| 国产精品久久久久av| 欧美在线在线| 欧美成人精品福利| 亚洲欧美自拍偷拍| 久久久久国产精品厨房| 99国产精品私拍| av成人免费在线观看| 日韩亚洲在线| 久久久久久久久综合| 亚洲第一成人在线| 99国产精品国产精品毛片| 国产精品嫩草影院av蜜臀| 久热精品视频在线观看| 欧美激情精品| 久久久精品免费视频| 欧美另类专区| 免费高清在线一区| 国产精品日韩在线观看| 欧美成年人视频网站欧美| 欧美午夜不卡视频| 欧美韩日高清| 国产专区欧美精品| 国产精品99久久99久久久二8| 伊人久久大香线蕉综合热线| 一本色道久久综合一区| 亚洲国产精品悠悠久久琪琪| 亚洲欧美另类久久久精品2019| 亚洲国产精品久久久久| 午夜天堂精品久久久久| 亚洲一区在线免费| 欧美高清hd18日本| 免费永久网站黄欧美| 国产欧美日韩中文字幕在线| 亚洲精品乱码视频| 亚洲黄色在线看| 久久久亚洲精品一区二区三区 | 黑人操亚洲美女惩罚| 亚洲图中文字幕| 中文高清一区| 欧美屁股在线| 最新日韩在线| 亚洲精选大片| 欧美成人激情视频免费观看| 欧美高清一区| 亚洲啪啪91| 欧美成年人视频| 欧美激情按摩在线| 亚洲欧洲精品一区| 欧美高清在线| 亚洲精品美女久久7777777| 亚洲欧洲在线视频| 欧美成人一区在线| 91久久久久久| 亚洲午夜激情网站| 欧美三区在线观看| 一区二区三区精品在线| 亚洲一区二区综合| 国产精品久久综合| 亚洲欧美日韩在线一区| 久久精品理论片| 黄色亚洲在线| 免费人成网站在线观看欧美高清 | 久久黄色级2电影| 国产在线不卡视频| 久热国产精品| 亚洲人成在线观看| 亚洲性夜色噜噜噜7777| 国产精品一区二区欧美| 欧美在线播放| 国产一区二区三区在线观看免费视频 | 亚洲国产天堂久久综合| 欧美激情第二页| 最新成人av在线| 亚洲曰本av电影| 国产人妖伪娘一区91| 久久人人爽人人爽| 亚洲欧洲一区| 欧美一区二区三区视频在线| 尤物在线精品| 欧美日韩在线播放一区二区| 欧美一级电影久久| 亚洲国产高清在线观看视频| 亚洲欧美成人一区二区在线电影| 国产亚洲欧美一级| 欧美精品久久久久久| 亚洲欧美在线aaa| 亚洲福利视频免费观看| 香蕉久久夜色精品| 亚洲精品在线电影| 国产欧美日韩综合| 欧美日本不卡高清| 久久精品亚洲热| 一区二区91| 亚洲国产va精品久久久不卡综合| 性色av一区二区三区| 亚洲伦理一区| 国产综合网站| 国产精品美女黄网| 欧美激情91| 久久久久久97三级| 亚洲一区二区3| 亚洲人成7777| 欧美成人情趣视频| 久久精品亚洲一区二区三区浴池| 99精品国产热久久91蜜凸| 狠狠入ady亚洲精品| 国产精品久久久久999| 欧美成人性网| 久久综合色8888| 欧美专区在线| 亚洲欧美色一区| 国产精品99久久99久久久二8| 亚洲高清毛片| 欧美成人免费在线| 米奇777超碰欧美日韩亚洲| 香港久久久电影| 亚洲在线电影| 中文欧美日韩| 99伊人成综合| 亚洲精品久久久久| 亚洲国产日韩精品| 亚洲二区视频在线| 在线精品一区| 一区二区在线观看视频在线观看| 国产女主播一区二区| 国产精品捆绑调教| 国产女人精品视频| 欧美三级午夜理伦三级中文幕 | 国产精品国产成人国产三级| 欧美日韩免费高清一区色橹橹| 欧美国产日韩亚洲一区| 免费日韩成人| 欧美顶级大胆免费视频| 欧美高清影院| 欧美特黄一级| 国产精品伊人日日| 国产偷久久久精品专区| 国产亚洲综合在线| 在线电影一区| 99v久久综合狠狠综合久久| av不卡在线观看| 亚洲视频精品| 欧美在线视频免费观看| 久久久久久久波多野高潮日日| 麻豆成人av| 91久久久久久久久| 亚洲视频在线二区| 欧美亚洲三级| 免费中文日韩| 欧美三级乱人伦电影| 国产日韩欧美一区二区三区四区 | 欧美巨乳波霸| 国产精品手机视频| 尤物九九久久国产精品的特点| 亚洲精品日韩在线| 午夜精品久久久久久久99樱桃| 久久精品99国产精品酒店日本| 欧美aa国产视频| 99re6这里只有精品| 欧美尤物巨大精品爽| 欧美肥婆在线| 国产日韩一区在线| 日韩一级网站| 久久人91精品久久久久久不卡| 亚洲国产精品久久久久久女王| 亚洲少妇最新在线视频| 久久久亚洲欧洲日产国码αv | 欧美黑人一区二区三区| 国产精品美女久久久久久免费| 国精品一区二区| 一区二区三区欧美激情| 久久欧美中文字幕| 亚洲婷婷在线| 欧美国产日本| 好吊一区二区三区| 亚洲欧美日韩久久精品| 亚洲缚视频在线观看| 亚洲欧美中文字幕| 欧美日韩三级电影在线| 亚洲第一福利社区| 欧美一区二区成人| 亚洲最新色图| 欧美大片网址| 亚洲高清视频的网址| 久久久精品免费视频| 一区二区欧美国产| 欧美美女视频| 亚洲破处大片|