類模板的定義和使用方法
下面舉例說明類模板的定義和使用方法。
例9.3.1:類模板的定義和使用。
#include <iostream.h>
#include <conio.h>
const int SIZE=8;
template <class T>
class Smemory { //定義類模板Smemory
T data[SIZE]; //類型爲T,長度爲SIZE的數組data[]爲數據成員
int count;
public:
Smemory( ){ count=0; }
void mput(T x); //mput()函數的參數x的類型是T
T mget( ); //聲明返回值類型爲T的成員函數mget()
};
template <class T>
void Smemory<T>::mput(T x) //定義成員函數mput(),函數的參數類型爲T,該函數用於爲數據成員 data數組的各個元素賦值
{
if(count==8) { cout<<"Memory is full"; return; }
data[count]=x;
count++;
}
template <class T>
T Smemory<T>::mget( ) //定義成員函數mget(),函數的返回類型爲T,該函數用於取出數據成員 data數組的各個元素
{
if(count==0) { cout<<"Memory is empty"; return 0; }
count--;
return data[count];
}
void main( )
{
Smemory<int> mo1;
int i; char ch='A';//將Smemory實例化,並創建對象mo1
Smemory<char> mo2; //將Smemory實例化,並創建對象mo2
for(i=0; i<8;i++)
{
mo1.mput(i); //調用成員函數mput()
mo2.mput(ch); ch++; //調用成員函數mput()
}
cout<<"Get mo1 => ";
for(i=0;i<8;i++)
cout<<mo1.mget( ); //調用成員函數mget()
cout<<"\nGet mo2 => ";
for(i=0;i<8;i++)
cout<<mo2.mget( ); //調用成員函數mget()
getch();
}
程序的運行結果是:
Get mo1=> 76543210
Get mo2=> HGFEDCBA
例9.3.1:類模板的定義和使用。
#include <iostream.h>
#include <conio.h>
const int SIZE=8;
template <class T>
class Smemory { //定義類模板Smemory
T data[SIZE]; //類型爲T,長度爲SIZE的數組data[]爲數據成員
int count;
public:
Smemory( ){ count=0; }
void mput(T x); //mput()函數的參數x的類型是T
T mget( ); //聲明返回值類型爲T的成員函數mget()
};
template <class T>
void Smemory<T>::mput(T x) //定義成員函數mput(),函數的參數類型爲T,該函數用於爲數據成員 data數組的各個元素賦值
{
if(count==8) { cout<<"Memory is full"; return; }
data[count]=x;
count++;
}
template <class T>
T Smemory<T>::mget( ) //定義成員函數mget(),函數的返回類型爲T,該函數用於取出數據成員 data數組的各個元素
{
if(count==0) { cout<<"Memory is empty"; return 0; }
count--;
return data[count];
}
void main( )
{
Smemory<int> mo1;
int i; char ch='A';//將Smemory實例化,並創建對象mo1
Smemory<char> mo2; //將Smemory實例化,並創建對象mo2
for(i=0; i<8;i++)
{
mo1.mput(i); //調用成員函數mput()
mo2.mput(ch); ch++; //調用成員函數mput()
}
cout<<"Get mo1 => ";
for(i=0;i<8;i++)
cout<<mo1.mget( ); //調用成員函數mget()
cout<<"\nGet mo2 => ";
for(i=0;i<8;i++)
cout<<mo2.mget( ); //調用成員函數mget()
getch();
}
程序的運行結果是:
Get mo1=> 76543210
Get mo2=> HGFEDCBA
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.