学习笔记:使用类模板,实现C++模板类头文件和实现文件分离的方法

参考: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"

否则,不能成功链接。

发布了34 篇原创文章 · 获赞 1 · 访问量 732

猜你喜欢

转载自blog.csdn.net/qq_41708281/article/details/104173239