c++模板介绍

#include<iostream>
using namespace std;
template<typename T> 
//函数模板
T maxr(T a,T b){
	return a>b?a:b; 
}
template<typename T>
//类模板
class test{
	private:
		T a,b;
		static string name;
	public:
		//构造函数 
		test(T a,T b){
			this->a=a;
			this->b=b; 
		}
		//析构函数
		~test(){
			cout<<"析构函数结束!"<<endl; 
		} 
		//拷贝函数  (此处是浅拷贝) 
		test(const test &c){  //此处是对象的引用 
			this->a=c.a;
			this->b=c.b;
		} 
		T maxt(){
			return a>b?a:b;
		}
		T sumt(){
			return a+b;
		}
}; 

int main()
{
	//函数模板调用
	double a,b;
	cout<<"输入a和b:";
	cin>>a>>b;
	cout<<"最大值是:"<<maxr(a,b)<<endl;
	
	//类模板调用
	test<double> t(a,b);
	cout<<"最大值是:"<<t.maxt()<<endl;
	cout<<"sum和是:"<<t.sumt()<<endl; 
	
	//拷贝函数使用  ---- 用在对象赋值时   
	test<double> x(t);
	cout<<"拷贝了的x对象的最大值是:"<<x.maxt()<<endl;
	cout<<"sum和是:"<<x.sumt()<<endl;
	return 0;
}

  

posted @ 2021-02-16 21:27  nanfengnan  阅读(22)  评论(0编辑  收藏  举报