码迷,mamicode.com
首页 > 编程语言 > 详细

c++ template怎么使用及注意事项

时间:2014-05-14 03:05:27      阅读:332      评论:0      收藏:0      [点我收藏+]

标签:style   blog   class   code   java   c   

c++ 中的template和c#的什么有点相似?

先看下定义方式:

bubuko.com,布布扣
template <typename|class T>
T myFunction(T param1,T param2...)
{
        T result= param1;
        // do something  

        return result;  
}
bubuko.com,布布扣

一看到这个定义方式,就想起来c#中的泛型:

bubuko.com,布布扣
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>
&&
bubuko.com,布布扣

其实,他们的用法和作用上都是很相似的.

使用之前,我们先看下使用注意事项:

1.如果你新建的工程是分空Console,请注意要把#include "stdafx.h"放在文件(头文件,资源文件)第一行,否则,不管是模板还是其他都地方都会编译失败;

2.使用模板时,template<typename|class T> 声明行同使用T的函数之间不允许出现其他代码行,最好也不要空行(没有验证有空行是否会编译失败)。

使用示例

工程文件结构:

bubuko.com,布布扣

注:

Templates.h---模板定义

ConsoleApplication1.cpp---main入口函数文件

Templates.h中代码:

bubuko.com,布布扣
#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;
};
bubuko.com,布布扣

ConsoleApplication1.cpp 调用代码:

bubuko.com,布布扣
#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;
}
bubuko.com,布布扣

输出结果:

bubuko.com,布布扣

c++ template怎么使用及注意事项,布布扣,bubuko.com

c++ template怎么使用及注意事项

标签:style   blog   class   code   java   c   

原文地址:http://www.cnblogs.com/yy3b2007com/p/3722060.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!