这星期自学了C++模板
模板
在一般情况下,程序设计时就会确定参与运算的所有对象的类型,让编译器在程序运行之前进行类型检查并分配内存,以提高程序的可靠性和运行效率。
1.带类属参数的函数称为函数模板。
2.带类属参数的类称为类模板。
模板的类属参数由调用它的实际参数的具体数据类型替换,由编译器生成一段真正可以运行的代码。这个过程称为实例化。
模板说明的一般形式:template<typename T1,typename T2,…,typename Tn>
函数模板
template<typename T>
T Max(Ta,Tb);
实例化:
1.模板函数 int Max(int,int);
2.模板函数 double Max(double,double);
3.模板函数 char Max(char,char);
…
模板函数 Aclass Max(Aclass,Aclass);
Aclass为类类型
类模板
template < template T>
class Array
{public:
...
virtual const T& Entry(int)const;
virtual void Enter(int,const T &);
private:
int sixe;
T * element;
实例化:
1.模板类:
class Array
{public:
…
virtual const int& Entry(int) const;
virtual void Enter(int,const int &);
private:
int size; int * element;
};
对象:
Array< int >IntAry(5);
2.模板类:
class Array
{public:
…
virtual const int& Entry(int) const;
virtual void Enter(int,const double &);
private:
int size; double * element;
}
对象:
Array< double >DouAry(5);