// templateInstance.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "templateInstance.h"
#include "funs.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/
// The one and only application object
CWinApp theApp;
using namespace std;
//
int _tmain(int argc, _TCHAR* argv[])
{
int c= add(5,6);
//int c= add<int>(5,6);
cout <<c<< endl;
return 0;
}
/*
11
请按任意键继续. . .
*/
// funs.h: interface for the funs class.
//
//
#if !defined(AFX_FUNS_H__9BEE7454_4A0C_48CB_BADD_D172C95C6DF4__INCLUDED_)
#define AFX_FUNS_H__9BEE7454_4A0C_48CB_BADD_D172C95C6DF4__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
template<typename T>
T add(T a, T b);
//template<typename T>
//T add(T a, T b)
//{
// return a+b;
//}
//template int add<int>(int a, int b); //这一句有什么好处吗?
//手工的显示实例化....
//这个大概的意思是 特殊化。
//就是说你可以
//template<int>
// int add(int a, int b)
//{
// return a + b + 1;
//}
//让int类型的add的特殊,区别与其他。。。虽然在这里举的例子不太正常,但是模版里面很多这么使用的。
//可以瞧瞧模板的元编程
#endif // !defined(AFX_FUNS_H__9BEE7454_4A0C_48CB_BADD_D172C95C6DF4__INCLUDED_)
// funs.cpp: implementation of the funs class.
//
//
#include "stdafx.h"
#include "templateInstance.h"
#include "funs.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//
// Construction/Destruction
//
template<typename T>
T add(T a, T b)
{
return a+b;
}
template int add<int>(int a, int b); //这一句有什么好处吗?