模板初学者指南2

原创 2002年09月11日 09:42:00

模板初学者指南2

原文:http://www.codeproject.com/cpp/templates_part1.asp

 

重载函数模板

<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 

函数模板

 

函数模板可以被其他的函数模板或是其他函数。编译器将遍历所有可能的函数模板并将创建相应的模板函数。查找使用最优匹配策略。

 

在模板中使用友元和其他模板

 

模板类可以包含其他的模板或是类,也可以使用其他类作为友元。当一个模板类包含另外的类时,有下面两种可能:

 

内部的类可以是一个通常的类。内部类独立于模板参数。否则内部类为另外一个模板。

外部模板类包含另外一个独立的模板(也独立于模板参数)。

 

template < class ElemType >

class Tree

{

//...

 

public:

    class Node

    {

        friend Tree < ElemType >;

        //...

    };

};

 

此例子中,内部模板类Node独立于Tree。外部类定义为Node的友元,包含参数列表。

 

模板类型

 

当使用在模板参数中定义的类型时,应该使用typename来定义:

 

template < typename T >

class X

{

//...

    typename T::X theStuff; // T::X is the type

    //...

};

 

class Test

{

//...

    class X { /* ... */ };

};

 

不使用typename,编译器报错。

 

枚举模板

 

当使用枚举模板时,可以创建一个产生对象的通用的类。提供一个枚举函数来分配内存。此枚举函数可以使用模板枚举函数来实现。可以使用任意类型:

 

class Builder

{

//...

    template < class T > static T* allocateMem();

};

 

注意:模板枚举函数不能为 virtual.

 

End

HTML5 & CSS3初学者指南(2) – 样式化第一个网页

本文为HTML5&CSS3初学者指南系列的第二篇文章,介绍CSS3的基本知识。
  • powertoolsteam
  • powertoolsteam
  • 2016年12月27日 13:59
  • 616

区块链这么火热 看看这篇区块链初学者指南

我并不明白为什么人们会觉得要理解区块链会有点难,而我也想知道为什么自己并没有。那是在 2013 年,我第一次听说有比特币这个东西(是的,知道的太晚啦)。我穷得连一个都买不起,看到这儿你也许已经对此文无...
  • oschina2017
  • oschina2017
  • 2018年01月12日 11:31
  • 164

linux初学者指南-基本配置

LINUX初学者指南 安装Ubuntu  1.注意事项 32位与64位版本的取舍 基于性能、稳定性以及硬件成本的综合考虑,我们只推荐使用64位的Linux发行版,同时建议将个人电...
  • BSBSDXBD
  • BSBSDXBD
  • 2016年04月08日 22:09
  • 930

前端-搜索引擎优化-《谷歌搜索引擎优化初学者指南》总结

1、通过标题标签标明页面的标题 标题标签告诉用户和搜索引擎一个特定的网页主题是什么 title标签理想情况下应该为每一个网页创建唯一的页面标题 网站首页的标题可以列出网站或者公司名称和其他一些重...
  • liona_koukou
  • liona_koukou
  • 2016年11月01日 09:42
  • 374

linux 编译内核操作流程 ──为新手指南

一、为什么要编译内核;有时我们为了实现某些功能,比如对iptables的防火墙有些需要内核支持;还有实现一些硬件 ...
  • fengyv
  • fengyv
  • 2006年05月17日 13:07
  • 5319

模板初学者指南1

模板初学者指南1原文:http://www.codeproject.com/cpp/templates_part1.asp 在开发大型应用时,对于不同的函数和类,通过使用共享代码模板可以节省大量的时间...
  • sdssly
  • sdssly
  • 2002年09月10日 13:37
  • 817

模板初学者指南

模板初学者指南原文:http://www.codeproject.com/cpp/templates_part1.asp 在开发大型应用时,对于不同的函数和类,通过使用共享代码模板可以节省大量的时间。...
  • huntjap
  • huntjap
  • 2005年01月05日 11:29
  • 798

MyBatis入门指南

MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。...
  • jackfrued
  • jackfrued
  • 2014年09月02日 00:31
  • 3736

HTML5 & CSS3 初学者指南(4) – Canvas使用

本文为HTML5&CSS3初学者指南系列的最后一篇文章,介绍HTML5的Canvas知识。
  • powertoolsteam
  • powertoolsteam
  • 2017年02月07日 10:26
  • 518

selenium 1.0 Testing Tools:Beginner's guide 已完成- selenium 1.0初学者指南

在耗时一个多月的情况下,边学边翻译这本书也终于完成了 自已计算机的知识并不多。所以很多词语也不是很到位,分享一下给大家,希望给大家带来一定的帮助 如果你觉得本书对你...
  • iceryan
  • iceryan
  • 2012年11月08日 15:56
  • 3442
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:模板初学者指南2
举报原因:
原因补充:

(最多只允许输入30个字)