系列三 简单的模板类/模板函数

模板类

#ifndef TEMPLATE_CLASS_H #define TEMPLATE_CLASS_H #include <assert.h> namespace study { template<class elemType> class CTemplate { enum{SIZE = 0}; public: CTemplate(void) { _item = SIZE; } CTemplate(int item) { _item = item; } virtual ~CTemplate(void) { } void SetItem(int item) { _item = item; } elemType GetItem(void)const { return _item; } private: elemType _item; }; } #endif //TEMPLATE_CLASSS_H

 

模板函数

#ifndef TEMPLATE_FUNCTION_H #define TEMPLATE_FUNCTION_H namespace study{ template<class elemType> elemType Max(elemType a,elemType b) { if (a>=b) { return a; } else { return b; } } } #endif //TEMPLATE_FUNCTION_H

 

#include "stdafx.h" #include <iostream> #include "Template_class.h" #include "Template_function.h" using namespace std; using namespace study; int _tmain(int argc, _TCHAR* argv[]) { const int itemA = 50; const int item = 40; CTemplate<int> fa; fa.SetItem(itemA); CTemplate<int>fb(item); cout<<"test template: fa():"<<fa.GetItem()<<endl; cout<<"test template: fb(int):"<<fb.GetItem()<<endl; cout<<Max(fa.GetItem(),fb.GetItem())<<endl; return 0; }

 

需要注意的是:在编写模板类声明时,推荐将函数的声明也写在同一文件.h中。

你可能感兴趣的:(系列三 简单的模板类/模板函数)