//第二十三模板 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;
}*/
//使用继承和模板的方式,都可以派生出一个类系,以实现代码重用的目前的,但是它们有着本质的区别
/*
由模板生成的多个新类,实现的是对多个数据类型的重载,它们处理数据方法都是相同的,但是继承方式派生出的类,数据有增加的可能,而且对数据的操作方式也可能会变化,
比如说派生类会提供更多的方法对数据进行操作,或者改变原有的方法,使得数据的操作更加简单和快捷,而且这些类之间也存在着兄弟,父子之间的关系
*/