博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
类模板 - C++快速入门45
阅读量:5049 次
发布时间:2019-06-12

本文共 1380 字,大约阅读时间需要 4 分钟。

类模板

 

让编程改变世界

Change the world by program


 

需要注意的地方

  在创建模板时,还可以用template <typename T>来代替template <class T>,它们的含义是一样一样的。 注意,template <class T>中的class并不意味着T只能是一个类。 再强调一次,不要把函数模板分成原型和实现两个部分。   如果编译器看不到模板的完整代码,它就无法正确地生成代码。 所得到的出错信息从“不知所云”到“胡说八道”什么样都有。   为了明确地表明swap()是一个函数模板,还可以使用swap<int>(i1, i2)语法来调用这个函数。 这将明确地告诉编译器它应该使用哪一种类型。   如果某个函数对所有数据类型都将进行同样的处理,就应该把它编写为一个模板。 如果某个函数对不同的数据类型将进行不同的处理,就应该对它进行重载。  

类模板

  类模板与函数模板非常相似:同样是先由你编写一个类的模板,再由编译器在你第一次使用这个模板时生成实际代码。 [codesyntax lang="cpp"]
template 
class MyClass{ MyClass(); void swap(T &a, T &b);}
[/codesyntax]   构造器的实现将是下面这样: [codesyntax lang="cpp"]
MyClass
::MyClass(){ // 初始化操作。}
[/codesyntax]   因为MyClass是一个类模板,所以不能只写出MyClass::MyClass(),编译器需要你在这里给出一种与MyClass()配合使用的数据类型,必须在尖括号里提供它。 因为没有确定的数据类型可以提供,所以使用一个T作为占位符即可。   接下来的示例程序将使这一切更加明朗。 我们即将编写一个基于模板的栈。   栈是实际编程过程中一种非常有用的数据结构,它是一种数据存储机制。 栈只提供两个函数:一个用来吧数据压入栈的顶部,另一个用来从栈取出顶部元素(先进后出)   尽管无数次在耳边徘徊,但没有学习过汇编语言的鱼油对于栈这个概念可能还是熟悉又陌生的。 尽管如此,我们还是时刻都在使用它们!   [kml_flashembed publishmethod="static" fversion="8.0.0" movie="http://blog.fishc.com/wp-content/uploads/2012/08/栈原理演示.swf" width="400" height="300" targetclass="flashmovie" wmode="transparent"] [/kml_flashembed] [buy]   [/buy] [Downlink href='http://urlxf.qq.com/?IR7Z3aY']视频下载[/Downlink] [Downlink href='http://kuai.xunlei.com/d/LONXEXHLQYHG']备胎下载[/Downlink]

转载于:https://www.cnblogs.com/LoveFishC/archive/2012/08/15/3847207.html

你可能感兴趣的文章
linux 配置SAN存储-IPSAN
查看>>
双链表
查看>>
java学习笔记之String类
查看>>
pymysql操作mysql
查看>>
Linux服务器删除乱码文件/文件夹的方法
查看>>
牛腩记账本core版本源码
查看>>
Word Break II
查看>>
UVA 11082 Matrix Decompressing 矩阵解压(最大流,经典)
查看>>
BZOJ4669抢夺(费用流+二分答案)
查看>>
bzoj1606
查看>>
jdk从1.8降到jdk1.7失败
查看>>
一些关于IO流的问题
查看>>
mongo备份操作
查看>>
8 -- 深入使用Spring -- 3...1 Resource实现类InputStreamResource、ByteArrayResource
查看>>
硬件笔记之Thinkpad T470P更换2K屏幕
查看>>
一个关于vue+mysql+express的全栈项目(六)------ 聊天模型的设计
查看>>
【知识库】-数据库_MySQL 的七种 join
查看>>
.net 写文件上传下载webservice
查看>>
noSQL数据库相关软件介绍(大数据存储时候,必须使用)
查看>>
iOS开发——缩放图片
查看>>