红联Linux门户
Linux帮助

范型设计

发布时间:2006-08-23 15:37:09来源:红联作者:romeobh
c++的模板设施提供了一种机制,它能够将类或函数定义内部的类型和值参数化(parameterizing)。这些参数在其他方面不变的代码中用作占位符,以后,这些参数会被绑定到实际类型上,可能是内置的类型,也可能是用户定义的类型。
例如:template
关键字template引入模板,参数由一对尖括号“<>”括起来,关键字class 表明这个参数代表一个类型。标识符elemType代表实际得参数名。
模板机制也支持面向对象得程序设计,类模板可以作为基类或派生类。每个派生类的实例化过程都会实例化相应的基类模板的实例。也可将函数定义为函数模板,函数调用时会根据类的类型产生适当的实例。
template
class Array{
public:
explicit Array(int size=DefaultArraySize);
Array(elemType *array,int array_size);
Array(const Array &rhs);

virtual ~Array() {delete [] ia;}
bool operator==(const Array&) const;
bool operator!=(const Array&) const;
Array& operator=(const Array&);
int size() const {return _size;}

virtual elemType& operator[](int index) {return ia[index];}
virtual void sort();
virtual elemType min() const;
virtual elmType max() const;
virtual int find(const elemType &value) const;
protected:
static const int DefaultArraySize =12;
int _size;
elemType *ia;
}
#include
#include "Array.h"
namespace std
int main(){
const int array_size=4;
Array ia(array_size);
Array da(array_size);
Array ca(array_size);

int ix;
for(ix=0;ix ia[ix]=ix;
da[ix]=ix*1.75;
ca[ix]=ix+'a';
}
for(ix=0;ix cout< }
return 0;
}
文章评论

共有 1 条评论

  1. 坏坏大少 于 2006-08-23 21:29:22发表:

    顶~~~~~~~