类模板template的使用!

#include "stdafx.h"
#include <queue>
#include <iostream>
#include <map>
#include <string>
using namespace std;

// 类模板的使用
// 类模板中 类成员函数的申明与定义
// 结构体模板的使用
// 函数模板的使用

template <typename T> class A
{
public:
	A();
	A(T _a,T _b); // T 代表任何类型的数据
	T sum();

private:
	T a;
	T b;

};

template <class T1,class T2>
struct Test
{
	T1 H;
	T2 W;
};

template <class T>A<T>::A() //类模板的成员函数是模板函数
{
	a=0;
	b=0;
}

template <class T>A<T>::A(T _a,T _b) 
{
	a=_a;
	b=_b;
}

template <class T>T A<T>::sum()//注意观察成员函数的写法
{
	return a + b;
}

template <class X>void swapFun(X &x,X &y)  // X 代表任何数据类型
{
	X tmp;
	tmp=x;
	x=y;
	y=tmp;
}

int _tmain(int argc, _TCHAR* argv[])
{
	A<int> obj1(3,4);
	A<double>obj2(2.33,3.67);
	cout<<"obj1.sum(3, 4)="<<obj1.sum()<<"\n"<<"obj2.sum(2.33, 3.67)="<<obj2.sum()<<endl;
	Test <double,int>tt[]={{20.5,23},{10.5,24}};
	printf("1 :%f %d\n",tt[0].H,tt[0].W);
	printf("2 :%f %d\n",tt[1].H,tt[1].W);
	int a=3,b=5;
	swapFun(a,b);
	printf("%d,%d\n",a,b);
	system("pause");
	return 0;
}

运行结果

类模板template的使用!_第1张图片

你可能感兴趣的:(C++,template,类模板)