#ifndef _MYARRAY_H_
#define _MYARRAY_H_
#include<iostream>
using namespace std;
template <typename T,int KSize,int KVal>
class MyArray
{
public:
MyArray();
~MyArray() {
delete[]m_pArr;
m_pArr = NULL;
}
void display();
private:
T *m_pArr;
};
template<typename T,int KSize,int KVal>
MyArray<T, KSize, KVal>::MyArray()
{
m_pArr = new T[KSize];
for (int i = 0; i < KSize; i++)
{
m_pArr[i] = KVal;
}
}
template<typename T,int KSize,int KVal>
void MyArray<T, KSize, KVal>::display()
{
for (int i = 0; i < KSize; i++)
{
cout << m_pArr[i] << endl;
}
}
#endif
以上为类模板示例 有以下特点
1.类的数据成员中含有模板
2.类与类的成员函数实现前都得申明template<typename T>
3.实例化时要附带模板参数<>,如实例化对象a MyArray<int, 10, 10> a;
4定义一个类模板就相当于定义了一系列功能相同类型不同的类