c++模板類例項化 簡單例子
阿新 • • 發佈:2019-01-04
template<class T> 定義一個模板類
注意模板類看作一個數據型別(int, float)
class A
{
public:
A();
T getlist(T x,int n);
private:
T data[maxsize];
}//構造一個類
下面寫main 主函式測試
模板類物件:
A<int>a();//int 可以為其他的資料型別 a 為構造的模板類的物件
注意:一些資料型別為簡單資料型別時可用cout顯示
但是一些構造型別,則需要呼叫其相應的顯示函式
#include <iostream>
using namespace std; const int MAXSIZE = 1000; template<class T> class Seqlist { public: Seqlist() { length = 0; } Seqlist(const T a[], int n); int locate(T x); T get(int i);//獲取第i個位置元素 private: T data[MAXSIZE]; int length; }; template<class T> Seqlist<T>::Seqlist(const T a[], int n) { if (n > MAXSIZE)throw"陣列長度超過最大長度"; for (int i = 0; i < n; i++) { data[i] = a[i]; } length = n; } template<class T> T Seqlist<T>::get(int i) { if (i<1 || i>length)throw"位置非法"; return data[i - 1]; } template<class T> int Seqlist<T>::locate(const T x) { for (int i = 0; i < length; i++) if (x == data[i]) return i + 1; return 0;//查詢失敗 } int main()//例項化 { int a[7] = { 1,2,3,4,5,6,7 }; Seqlist<int>list(a, 7); int v = list.locate(5); cout << v << endl; int d = list.get(5); cout << d << endl; }