C/C++--模板类实现.h和.cpp分离

模板详解:http://developer.51cto.com/art/201208/351569.htm


用VS2012创建控制台工程


TemplateTest.h

#ifndef __TEMPLATE_TEST_H__
#define __TEMPLATE_TEST_H__

template<class T>
class TemplateTest
{
public:
	TemplateTest();
	~TemplateTest();

public:
	T sub(T a, T b);
};
#endif


TemplateTest.cpp

#include "TemplateTest.h"

template<class T>
TemplateTest<T>::~TemplateTest()
{

}

template<class T>
TemplateTest<T>::TemplateTest()
{

}

template<class T>
T TemplateTest<T>::sub( T a, T b )
{
	return a + b;
}



使用时包含TemplateTest.cpp,而不是包含TemplateTest.h

// TestVS2012.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include "iostream"
#include "TemplateTest.cpp"

int _tmain(int argc, _TCHAR* argv[])
{
	TemplateTest<int> tempInt;
	std::cout << tempInt.sub(3, 4) << std::endl;

	TemplateTest<double> tempDouble;
	std::cout << tempDouble.sub(2.3, 4.3) << std::endl;
	getchar();
	return 0;
}


你可能感兴趣的:(template,模板类,cc++,.h,.cpp)