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

旅途

如果想飛得高,就該把地平線忘掉

在類的頭文件中保存靜態變量

當設計開發一個類的時候,程序員通常需要在類的內部定義一些靜態變量。在通常情況下,你會在一個類的頭文件中定義一個靜態變量并在源代碼程序中初始化,如下所示:??


// File.h
class File
{
// . . . code
private:
static char DELIMETER;
}
// File.cpp
char File:ELIMETER = "/";

然而,這一方法并不適用于模板類。模板類通常位于頭文件中。生成一個原文件并沒有太多的用處,因為你不能為所用的模板參數初始化。
// Array.h
template< class T>;
class Array
{
// . . .
private:
// hold all instances of this type (T) in an array
static std::vector< Array< T>; *>; s_aAllInstances;
};
// Array.cpp
// illegal C++
template< class T>;
std::vector< Array< T>; >; Array< T>;::s_aAllInstances;
然而,C++允許靜態函數在模板中操作,而在一個靜態函數中,你可以調用一個靜態變量。
如下所示:
template< class T>;
class Array
{
//...
private:
typedef std::vector< Array< T>;*>; ElementsArray;
static ElementsArray & s_Elements()
{
static ElementsArray s_array;
return s_array;
}
};
這一技巧功能非常強大,因為對于Array< int>;,你必須提供Array< int>;::s_Elements;對于rArray< std::string>;,你必須擔任 Array< std::string>;::s等。

這里你必須完成下面的兩個步驟:

在模板類中必須有一個模板函數(不是變量);我們建議你以變量名的形式來為它命名。
在模板函數中添加靜態數據。
下面的范例包含了Array< T>;類,這一類在內部里把每一數組定義為類型T。當某一類型被生成或刪除時,它會顯示出數組元素個數及其類型。
#include <vector>;
#include <algorithm>;
#include <iostream>;
template< class T>;
struct Type;
template<>;
struct Type< int>;
{
static const char * name() { return "int"; }
};
template<>;
struct Type< long>;
{
static const char * name() { return "long"; }
};
template<>;
struct Type< std::string>;
{
static const char * name() { return "std::string"; }
};
template<>;
struct Type< float>;
{
static const char * name() { return "float"; }
};
/*
holds internal references to its objects
(of Type T)
*/
template< class T>;
class Array
{
public:
Array()
{ AddMe(); }

Array( const Array &
{ AddMe(); }

~Array()
{ DeleteMe(); }

private:
void AddMe()
{
s_Elements().push_back( this);
std::cout
<< "We have added one element of type "
<< Type< T>;::name() << std::endl;
std::cout
<< "We have now " << s_Elements().size()
<< " " << Type< T>;::name() << " elements" << std::endl;
}

void DeleteMe()
{
ElementsArray::iterator itFound =
std::find( s_Elements().begin(), s_Elements().end(), this);
if ( itFound != s_Elements().end())
{
s_Elements().erase( itFound);
}
std::cout
<< "We have deleted one element of type "
<< Type< T>;::name() << std::endl;
std::cout
<< "We have now " << s_Elements().size()
<< " " << Type< T>;::name() << " elements" << std::endl;
}
private:
// note: we're treating it as an internal variable
typedef std::vector< Array< T>;*>; ElementsArray;
static ElementsArray & s_Elements()
{
static ElementsArray s_array;
return s_array;
}

};

int main(int argc, char* argv[])
{
Array< int>; int1;
Array< int>; int2;
Array< long>; long1;
Array< long>; long2;
Array< std::string>; str1;
Array< std::string>; str2;
Array< float>; float1;
Array< float>; float2;
Array< float>; float3;
Array< int>; int3;
Array< long>; long3;
Array< std::string>; str3;
return 0;
}

posted on 2007-09-06 01:54 旅途 閱讀(819) 評論(0)  編輯 收藏 引用 所屬分類: C/C++

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            亚洲免费播放| 99亚洲精品| 亚洲午夜av在线| 欧美成人精品h版在线观看| 亚洲一区二区欧美日韩| 亚洲激情中文1区| 一区免费观看| 国模套图日韩精品一区二区| 国产欧美亚洲视频| 国产综合香蕉五月婷在线| 一本色道久久88亚洲综合88| 免费精品视频| 欧美激情久久久久| 亚洲福利视频三区| 国产一级精品aaaaa看| 国产一区二区三区在线观看免费视频 | 久久精品视频在线| 在线观看国产成人av片| 伊人激情综合| 久久人人爽人人爽| 免费欧美在线视频| 久久九九久久九九| 欧美激情一区二区久久久| 欧美日韩三级电影在线| 国产精品亚洲网站| 亚洲国产岛国毛片在线| 在线一区观看| 久久九九热免费视频| 亚洲电影自拍| 欧美大片国产精品| 国产精品高潮粉嫩av| 黄网动漫久久久| 蜜臀av性久久久久蜜臀aⅴ四虎| 久久久国产精彩视频美女艺术照福利| 国产日本欧美在线观看| 久久综合亚州| 亚洲一区二区三区国产| 久久亚洲风情| 久久精品国产清自在天天线| 午夜精品久久久久影视| 欧美激情视频给我| 一区二区三区回区在观看免费视频| 亚洲乱码国产乱码精品精| 亚洲欧美日韩人成在线播放| 国产三级欧美三级日产三级99| 一区二区三区国产精华| 亚洲专区欧美专区| 欧美激情精品| 精品51国产黑色丝袜高跟鞋| 老司机免费视频一区二区| 欧美国产日韩在线| 亚洲自拍偷拍麻豆| 亚洲精品日韩激情在线电影| 国产精品区一区| 久久在线视频| 欧美在线视频a| 久久一区二区视频| 久久一区二区三区超碰国产精品| 亚洲精品乱码久久久久久黑人| 久久久五月婷婷| 免费不卡在线视频| 激情久久久久久久| 日韩午夜电影| 欧美日韩国产色视频| 亚洲日本电影在线| 欧美一区二区三区在线免费观看| 欧美色中文字幕| 一本到12不卡视频在线dvd| 一区二区国产在线观看| 国产精品亚洲片夜色在线| 亚洲国产精品一区二区尤物区| 亚洲——在线| 久久中文字幕一区二区三区| 国产一区二区日韩精品欧美精品| 91久久国产精品91久久性色| 久久综合99re88久久爱| 午夜视频一区在线观看| 亚洲天堂男人| 亚洲最新视频在线| 欧美va天堂| av成人免费在线观看| 久久久欧美精品| 亚洲三级视频| 久久亚洲精品中文字幕冲田杏梨| 亚洲免费在线精品一区| 亚洲一级一区| 亚洲一区二区三区欧美| 欧美精品97| 亚洲国产精品成人精品| 亚洲福利视频在线| 久久久久久久波多野高潮日日| 欧美在线视屏| 另类亚洲自拍| 蜜桃av综合| 尤物九九久久国产精品的分类| 欧美资源在线| 欧美在线一二三四区| 国产精品二区在线| 一本色道久久综合精品竹菊| 国产精品99久久久久久久女警 | 国产精品狠色婷| 99在线精品观看| 亚洲国产成人精品久久| 国内精品国语自产拍在线观看| 香蕉久久久久久久av网站| 一区二区在线观看视频| 久久精品国产亚洲5555| 一区二区不卡在线视频 午夜欧美不卡在 | 久久久久久久尹人综合网亚洲 | 欧美成人一区二区| 久久久蜜桃精品| 久久免费视频在线| 影音先锋成人资源站| 欧美bbbxxxxx| 一区二区三区免费看| 欧美一区91| 性视频1819p久久| 欧美xx视频| 亚洲精品久久在线| 影音先锋亚洲电影| 欧美黑人多人双交| 这里只有精品丝袜| 一区精品在线| 免费中文字幕日韩欧美| 99视频国产精品免费观看| 欧美在线视频一区| 亚洲国产视频一区| 欧美美女日韩| 中国成人在线视频| 欧美日韩在线播放三区| 亚洲欧美日本在线| 亚洲大胆女人| 国内精品久久久久久久果冻传媒 | 国产精品久久久久77777| 欧美在线观看视频一区二区| 欧美激情一区二区三区高清视频| 亚洲一区二区久久| 国模精品一区二区三区色天香| 欧美伦理91| 久久久精品免费视频| 一本久道综合久久精品| 久久麻豆一区二区| 亚洲无线视频| 亚洲高清网站| 国产精品一二一区| 亚洲视频成人| 免费亚洲一区二区| 欧美一级在线亚洲天堂| 亚洲日韩欧美视频| 国产亚洲一区二区精品| 欧美调教vk| 麻豆精品网站| 久久精品国产清自在天天线| 日韩一区二区精品| 欧美激情一二三区| 免费观看亚洲视频大全| 欧美一级电影久久| 一本色道88久久加勒比精品| 18成人免费观看视频| 久久三级福利| 亚洲一区二区三| 日韩天堂av| 91久久久久久| 免费不卡在线视频| 久久高清福利视频| 亚洲自拍高清| 亚洲一级在线观看| 在线亚洲美日韩| 亚洲人体影院| 欧美欧美全黄| 免费观看成人| 玖玖在线精品| 一区二区激情小说| 艳女tv在线观看国产一区| 亚洲精品老司机| 亚洲成色777777在线观看影院| 韩国av一区二区三区| 欧美 日韩 国产 一区| 久久久噜噜噜久久中文字幕色伊伊 | 欧美成人综合| 老司机凹凸av亚洲导航| 久久青青草原一区二区| 久久夜色精品国产亚洲aⅴ| 欧美一区二区三区男人的天堂| 午夜精品福利一区二区三区av| 午夜一区在线| 久久精品国产清自在天天线| 久久久久9999亚洲精品| 久久精品卡一| 免费一区视频| 亚洲国产精品一区制服丝袜 | 亚洲在线一区二区三区| 久久精品一区蜜桃臀影院| 亚洲欧美日韩视频一区| 亚洲欧美激情在线视频| 久久福利视频导航| 美女黄毛**国产精品啪啪 | 麻豆免费精品视频| 欧美精品亚洲| 国产精品黄色在线观看|