`
rollstone
  • 浏览: 39021 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

C++模板

阅读更多
template是关键字,template之后是 模板形参表。模板形参表是用尖括号括住的一个或者多个模板形参的列表。

1.模板函数
template <typename T>                          //没有分号
[inline] int compare(const T &V1 ,const T &V2) //和上面的是一个语句
{
//do something
}


使用函数模板时,编译器会推断哪个(或者)那些模板实参绑定到模板形参,一旦编译器确定了实际的模板实参,就称它实例化了函数模板的一个实例。
compare(1,0);//初始化为int


2.模板类
template <class Type> class Queue
{
public:
Queue();
Type &front (); //return element from head of Queue
..........
}
与调用函数模板形成对比,使用类模板时,必须为模板形参显式制动实参。
Queue<int> qi; //Queue that holds ints
Queue< vector<double> > qc; //Queue that holds vectors of doubles


typename 与class的区别:
在函数模板形参表中typename和class具有相同的含义,可以互换使用。
template <typename T,class U> calc (const T&,const U&);
用typename更直观的指出后面是个类型名。
typename是作为标准C++的组成部分加入C++中的,因此旧的程序可能只用class.

3.在模板内部指定类型。
template <class Parm,class U>
Parm fcn(Parm* array ,U value)
{
  Parm::size_type *p;
}
我们只能知道size_type是Parm的成员,但是我们不知道size_type是一个类型成员的名字还是一个数据成员的名字,在默认情况下,编译器假定这样的名字指定数据成员,而不是类型。
如果希望编译器将size_type当做类型,则必须显示告诉编译器这样做:
typename Parm::size_type *p;
在类型前用typename没有害处,因此,即使typename是不必要的,也没有关系。

以上都来自于c++primer

额,网上又看到typename和class的不同- -!有时间看看
http://dev.yesky.com/13/2221013.shtml


分享到:
评论

相关推荐

    《 C++模板》和《C++模板元编程》两本

    C++模板是C++语言中的一个强大特性,它允许程序员创建泛型代码,即能够处理多种数据类型的代码。模板在C++中分为两种主要类型:函数模板和类模板。函数模板用于定义可以接受不同类型参数的函数,而类模板用于创建...

    C++模板与STL库介绍

    C++模板和STL库是C++编程语言中的两个核心特性,它们极大地提高了代码的复用性和效率。本文将深入探讨这两个主题,并提供丰富的实践应用示例。 首先,我们来理解C++模板。模板是C++的一个强大工具,它允许程序员...

    深入实践C++模板编程 源码

    C++模板是C++语言中的一个强大特性,它允许我们编写通用代码,实现代码复用,提高效率。在深入实践C++模板编程的过程中,我们不仅可以理解模板的基本概念,还可以掌握其高级特性和应用技巧。 首先,我们要理解模板...

    C++模板中文 PDF 版 不错的c++模板书籍

    《C++模板中文版》是一本深入探讨C++模板编程技术的专业书籍,旨在帮助读者全面理解和掌握这一核心的C++特性。C++模板是C++语言中的一个强大工具,它允许程序员创建泛型代码,实现代码重用和类型安全。在阅读这本书...

    C++模板元编程

    ### C++模板元编程 #### 一、C++模板元编程概述 在现代软件开发领域,C++模板元编程(Template Metaprogramming)是一种利用C++编译器的类型系统来实现计算逻辑的技术。它允许程序员在编译时执行复杂的算法和数据...

    C++模板元编程技术与应用

    《C++模板元编程技术与应用》是一本深入探讨C++模板元编程的书籍,旨在让更多的C++程序员了解并掌握这一技术,从而在编程过程中提高效率和代码质量。模板元编程是C++中一种强大的静态编译时编程技术,它允许程序员在...

    c++模板元编程代码

    C++模板元编程是一种在编译时执行计算和创建代码的技术,它利用了C++模板系统的能力,将编程任务从运行时转移到了编译时。模板元编程允许开发者编写更高效、更灵活的代码,特别是在处理类型系统和泛型算法时。在本...

    c++模板经典书籍

    C++模板是C++编程语言中的一个重要特性,它允许程序员创建泛型代码,实现代码复用,提升效率并保持灵活性。在"两本很好的讲解c++ template的书"中,我们可以期待深入理解模板的各个方面,包括基本概念、特性和最佳...

    C++ 模板类 简单试用

    C++模板类是C++语言中的一个重要特性,它允许我们编写通用代码,这些代码可以用于处理不同类型的数据。模板类的出现使得程序员可以创建泛型(generic)容器、算法和其他工具,无需为每种数据类型单独编写代码。下面...

    C++模板讲解习题及答案

    C++ 模板讲解习题及答案 C++ 模板是 C++ 编程语言中的一种非常重要的概念,它可以实现代码的复用和泛型编程。下面是 C++ 模板的主要知识点和考点: 1. 模板的概念 模板是指可以根据需要实例化出多种类型的函数或类...

    c++模板的讲解

    C++模板详解 C++模板是C++编程语言中的一种重要机制,它允许开发者编写通用的函数和类,以适应不同的数据类型。模板的出现解决了函数重载的问题,使得代码更加简洁和灵活。本文将详细讲解C++模板的概念、声明、使用...

    C++模板库基础学习

    C++模板库是C++编程语言中的一个强大工具,它为程序员提供了高度抽象和泛化的代码复用机制。模板库主要包括三大部分:模板、标准模板库(STL)和元编程。在这里,我们将深入探讨C++模板库的基础知识,特别是STL的元素...

    c++模板元编程

    C++模板元编程是一种在编译时执行计算和构建类型的技术,它利用了C++模板的强大功能,将元数据(即关于数据的数据)处理提升到了一个新的层次。在C++中,模板不仅仅是用来创建泛型代码的工具,它们也可以被用作一种...

    C++模板元编程技术与应用 荣耀

    C++模板元编程是一种在编译时进行计算和代码生成的技术,它利用C++模板机制的强大功能,将元数据转化为可执行的代码。这一技术在提高程序效率、减少运行时开销、实现类型安全和静态多态等方面具有显著优势。在“C++...

    C++模板全览

    C++模板是编程语言中的一个强大特性,它允许程序员创建泛型代码,即代码可以处理多种数据类型。这篇由侯捷等译的《C++ Templates:The Complete Guide》全面介绍了C++模板的各个方面,旨在帮助开发者更高效地利用这...

    C++模板(侯捷等)

    C++模板是C++编程语言中的一个重要特性,它允许程序员创建泛型代码,即能够处理多种数据类型的代码。模板在C++中分为两种主要类型:函数模板和类模板。通过使用模板,我们可以编写出更加通用、高效且易于维护的代码...

    数据结构:基于C++模板类的实现

    《数据结构:基于C++模板类的实现》是一本深入探讨如何使用C++语言来构建高效数据结构的书籍。在C++中,模板类是一种强大的工具,它允许我们编写通用的代码,适用于不同类型的对象,这在处理数据结构时特别有用。通过...

Global site tag (gtag.js) - Google Analytics