c++ template怎么使用及注意事项
2014-05-11 18:33
197 查看
c++ 中的template和c#的什么有点相似?
先看下定义方式:
一看到这个定义方式,就想起来c#中的泛型:
其实,他们的用法和作用上都是很相似的.
使用之前,我们先看下使用注意事项:
1.如果你新建的工程是分空Console,请注意要把#include "stdafx.h"放在文件(头文件,资源文件)第一行,否则,不管是模板还是其他都地方都会编译失败;
2.使用模板时,template<typename|class T> 声明行同使用T的函数之间不允许出现其他代码行,最好也不要空行(没有验证有空行是否会编译失败)。
使用示例
工程文件结构:
注:
Templates.h---模板定义
ConsoleApplication1.cpp---main入口函数文件
Templates.h中代码:
ConsoleApplication1.cpp 调用代码:
输出结果:
先看下定义方式:
template <typename|class T> T myFunction(T param1,T param2...) { T result= param1; // do something return result; }
一看到这个定义方式,就想起来c#中的泛型:
List<T> List<int> item=new List<int>(); KeyValuePair<T,T> Dictionary<T,T> Dictionary<int,string> dict=new Dictionary<int,string>(); Func<in T...,out T> Action<in T...,out void> &&
其实,他们的用法和作用上都是很相似的.
使用之前,我们先看下使用注意事项:
1.如果你新建的工程是分空Console,请注意要把#include "stdafx.h"放在文件(头文件,资源文件)第一行,否则,不管是模板还是其他都地方都会编译失败;
2.使用模板时,template<typename|class T> 声明行同使用T的函数之间不允许出现其他代码行,最好也不要空行(没有验证有空行是否会编译失败)。
使用示例
工程文件结构:
注:
Templates.h---模板定义
ConsoleApplication1.cpp---main入口函数文件
Templates.h中代码:
#include "stdafx.h" #include <iostream> template< class T > T myFunc(T first,T second,T third) { T maxValue=first; if(second>maxValue) { maxValue=second; } if(third>maxValue) { maxValue=third; } return maxValue; };
ConsoleApplication1.cpp 调用代码:
#include "stdafx.h" #include <iostream> using std::cout; using std::endl; #include <conio.h> #include "Templates.h" int _tmain(int argc, _TCHAR* argv[]) { int maxValue=myFunc(1,3,10); cout<<"gradeBook1 created for course:"<< endl; cout<< "The max value is:"<<maxValue<< endl; std::cin.get(); return 0; }
输出结果:
相关文章推荐
- C++中typename关键字的使用方法和注意事项
- c++ shared_ptr 使用注意事项. 2
- C++中typename关键字的使用方法和注意事项
- C++中typename关键字的使用方法和注意事项
- 32位和64位C++程序使用ADO访问ORACLE注意事项和区别
- 前台系统使用resttemplate调用后台系统显示注意事项
- C++模板使用注意事项
- c++中const类型的使用与注意事项
- 使用C++实现JNI接口需要注意的事项
- c++中struct使用注意事项
- 夫妻用情趣品羊眼圈怎么使用与注意事项
- 使用C++实现JNI接口需要注意的事项
- C++代码札记(一)求输入任意整数范围的阶乘、求输入任意整数X的N次幕、静态变量使用注意事项。
- C++中typename关键字的使用方法和注意事项
- c++全局变量使用中的一些注意事项
- ~c++中的指针使用注意事项
- C++中Vector(向量)使用erase时应该注意的事项
- C++智能指针使用注意事项
- C++ STL使用,以及注意事项
- c++ shared_ptr 使用注意事项. 1