参考:C/C++规范设计简明教程,P362
目的:使用类模板。
第一步:建立工程,添加类Compare
头文件Compare.h:
#pragma once
//使用类模板
//以下为类模板的结构定义
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <stdio.h>
#include <math.h>
#include <string.h>
template <class T> ///等价于template < typename T >
class Compare
{
public:
Compare(T x, T y); //类的构造函数
T getMax(); //求最大值,无输入参数,输出参数类型为T
private:
T fX;
T fY;
};
类模板的源文件
#pragma once
#include "Compare.h"
template <class T>
Compare <T>::Compare(T x, T y) //类的构造函数
{
fX = x;
fY = y;
}
template <class T>
T Compare <T>::getMax() //求最大值,无输入参数,输出参数类型为T
{
if (fX > fY)
return fX;
else
return fY;
}
主文件:
//学习类模板
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <stdio.h>
#include <math.h>
#include <string.h>
#include "Compare.cpp"
using namespace std;
int main()
{
cout << "Hello World!\n";
Compare <int> cp1(5,3);
cout << cp1.getMax()<<endl; //输出5,3之间的较大值
Compare <double> cp2(5.4, 3.4);
cout << cp2.getMax() << endl; //输出5.4,3.4之间的较大值
getchar();
}
结果:
调试经验:
使用类模板时,如果类模板的头文件和源文件分离,那么在主文件中应改为
#include "Compare.cpp"
否则,不能成功链接。