bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

什么是C++標準模板庫(STL)的概念-創新互聯

C++提供了多種代碼重用機制,在前面介紹派生和繼承時,派生類可以繼承基類中的成員變量和成員函數。模板是另一種代碼重用機制。

創新互聯建站專注于布爾津網站建設服務及定制,我們擁有豐富的企業做網站經驗。 熱誠為您提供布爾津營銷型網站建設,布爾津網站制作、布爾津網頁設計、布爾津網站官網定制、小程序制作服務,打造布爾津網絡公司原創品牌,更為您提供布爾津網站排名全網營銷落地服務。

有時候在設計程序的時候會遇到這樣一種情況:需要設計的幾個類,其功能都是一樣的,僅僅只是需要操作的數據類型不同。遇到這樣的情況,固然可以將所有的類都設計一遍,但是在C++中,我們有更好的方法:設計一個模板類。假設我們需要創建一個數組類,該數組可能是整型數組,也可能是double類型數組、string類型數組等,為此我們需要設計一個數組的模板類。

例1:
template< class T >
class array
{
public:
array( int );
T & operator;
const T & operator[] ( int )const;
int getlen()const{ return length; }
~array();
private:
array(){};
int length;
T * num;
};
template < class T >
array< T >::array( int n )
{
num = new T[n];
length = n;
}
template < class T >
array< T >::~array()
{
delete[] num;
}
template< class T >
T & array< T > ::operator[] (int i)
{
if( i < 0 || i >= length)
throw string("out of bounds");
return num[i];
}
template< class T >
const T & array< T > ::operator[] (int i) const
{
if( i < 0 || i >= length)
throw string("out of bounds");
return num[i];
}
template< class T >
ostream & operator<<(ostream & out, const array <T> & A)
{
for(int i=0; i < A.getlen(); i++)
out<< A[i] << " ";
return out;
}
在本例中,我們定義了一個數組的模板類array,借用該示例,我們來了解一下模板類的一些基本語法。在本例中我們定義模板類array時,前面加上了一句聲明:
template< class T >
該語句稱為模板頭,可以單獨放在一行,也可以與后面的class array同放在一行,這都沒有關系。模板頭中的“T”我們稱之為類參數,類參數表示將會以確定的數據類型替代之,任何有效的C++標識符均可以作為類參數,當然通常我們還是會用“T”來做類參數。

模板頭中template關鍵字和“<”之間可以保留一個空格,但通常這兩者之間不留空格。

對于模板類而言,在類外定義類中的成員函數的時候都需要加上模板頭。同時由于array是個模板類,因此類名是array< T >,故而在類外定義帶參構造函數的完×××式是:
template < class T >
T & array< T >::array( int n )
{
num = new T[n];
length = n;
}
而如果是在類內部定義該函數,則會相對簡單一些:
array( int n )
{
num = new T[n];
length = n;
}
在本例中用到了前面所介紹的很多知識點,例如將默認構造函數置為private屬性,重載下標操作符,重載輸出操作符等,這些知識點希望能夠仔細領會。

模板類至少有一個類參數,但是可以有多個類參數,每一個類參數前都必須有關鍵字class或者類型名。

例2:
template< class T, class S, class R>
class test
{
public:
S fun( R r);
private:
T x;
};
本例就是一個具有多個類參數的模板類示例。
轉載請注明出處: 1688

另外有需要云服務器可以了解下創新互聯scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。

網頁名稱:什么是C++標準模板庫(STL)的概念-創新互聯
當前鏈接:http://vcdvsql.cn/article4/dcheoe.html

成都網站建設公司_創新互聯,為您提供App開發做網站網站建設軟件開發移動網站建設品牌網站制作

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

h5響應式網站建設