对于学习C++类模板来说,这个例子是个很值得研究的代码,包含了很多信息。所谓类模板,本人粗浅的理解就是当你的类中含有通用的数据类型时候,就可以用类模板,比如说,你开发一个类,他包含的数据可能是整数型,也可能是字符型,也可能是双精度型,当我要写一个都能处理这些不同类型数据的东西的时候,就可以考虑运用类模板去写。
以下是教科书上关于数组类模板的代码,很经典,值得细细思考其中的深刻的思想。
#ifndef ARRAY_CLASS
#define ARRAR_CLASS
#include<iostream>
#include<cstdlib>
using namespace std;
#ifndef NULL
const int NULL=0;
#endif
//错误类型集合
enum ErrorType
{
};
//错误信息
char *errorMsg[]=
{
};
//数组类模板声明
template <class T>
class Array
{
};
//以下为类成员函数的定义
//模板函数Error实现输出错误信息的功能
template<class T>
void Array<T>::Error(ErrorType error,int badIndex)const
{
}
//构造函数
template <class T>
Array<T>::Array(int sz)
{
}
//析构函数
template<class T>
Array<T>::~Array(void)
{
}
//拷贝构造函数
template <class T>
Array<T>::Array(const Array<T>& X)
{
}
//重载'='
template<class T>
Array<T>& Array<T>::operator =(const Array<T> &rhs)
{
}
//重载[]
template <class T>
T &Array<T>::operator[](int n)
{
}
//重载指针转换运算
template <class T>
Array<T>::operator T*(void)const
{
}
//取当前数组大小
template<class T>
int Array<T>::ListSize(void)const
{
}
//将数组大小修改为sz
template <class T>
void Array<T>::Resize(int sz)
{
}
#endif //ARRAY_CLASS
533

被折叠的 条评论
为什么被折叠?



