//第二十三模板 6类模板的定义 //类模板的定义与函数模板的定义大到到致相同 /*#include <iostream> using namespace std; template<class T> class people { public: people(T x, T y):X(x),Y(y){} T getX(){ return X;} T getY(){ return Y;} private: T X, Y; }; int main() { int a=3, b=4; people<int> Jack(a,b); //注意,由于people是个模板类,因此构造对像时略有不同 //people<int> Jack(a,b) //<in>告诉编译器将从模板中产生一个类,并且类型int替换类型T //这样,people类中所有类型为T的参数将全部被替换为类型为int的参数 cout<<Jack.getX()<<endl; cout<<Jack.getY()<<endl; people<char> Mack('x','y'); cout<<Mack.getX()<<endl; cout<<Mack.getY()<<endl; return 0; }*/ //使用继承和模板的方式,都可以派生出一个类系,以实现代码重用的目前的,但是它们有着本质的区别 /* 由模板生成的多个新类,实现的是对多个数据类型的重载,它们处理数据方法都是相同的,但是继承方式派生出的类,数据有增加的可能,而且对数据的操作方式也可能会变化, 比如说派生类会提供更多的方法对数据进行操作,或者改变原有的方法,使得数据的操作更加简单和快捷,而且这些类之间也存在着兄弟,父子之间的关系 */