C++模版————复习
来源:互联网 发布:一组数据的range怎么求 编辑:程序博客网 时间:2024/05/20 21:59
模版的复习:< > class typename
1. template <类型/整型常量> :模版是参数化的类/函数 ----->其<>中一般放class typename int 这3个关键字。
2.模版底层其实是用typeid来探测其实际的类型。
3.模版声明都是防止 类/函数的 前面: template <class T> class abc{}; template <class T> void abc(){} template<class T> void arry<T>::getAbc(){}。
4.重大好消息: 现在我们可以通过模版,来实现“不限长度的数组的传递了,即仅仅把数组名作为唯一形参的函数有了”=====》 模版+数组引用
实现机制是: 通过模版的自动探知类型的功能,来探知该数组的大小:如下
template <class Arry,int size> void haha(Arry (&a)[size]){ for(size....)cout<<a[i]} 这样即可。哈哈
5.template <class T,int size> arry<T,size>& arry<T,size>::operator=(const arry& obj)
为什么上面的语句之前要用到<>,而之后不要用到<>呢? 因为:之前没有arr<T,size>::来修饰,限定域,之后有了,就可以不加了。主要用于:类的外部函数的实现
6.其实模版,经过编译运行之后,是把其修饰的函数或者是类,的名称改掉,把模版相关的类型都统一添加到了名称一部分中去了:如:array====>编译后:5arrayIiLiIoEE
7.使用了模版,就要考虑到各类的兼容性。使用T()这个临时变量来构造初始化是不错的选择。是东东更兼容。
8.默认值:函数不可以(因为函数本来就可以自动探测其类型,根本就无需),类可以有默认值。(同样遵循由右至左的默认值给与顺序),即使使用了默认值,arry<>这个尖括号也必须存在
9.要懂得这个的使用: if (typeid(data) != typeid(char) ) 来判断是否类型相等。
10.继承:子类的模版参数中必须存在父类的所有参数,以便在构造子类的时候,子类会去构造父类。呵呵: son:public father<B> son(const B& dataB): father<B>(dataB)
11.作业:实现单链表使用模版实现一下。
- c++ 模版template —— c++(复习七)
- C++模版————复习
- 省选模版复习——LCT
- 省选模版复习——FFT
- C++——模版:函数模版
- C++——模版:类模版
- 省选模版复习——后缀数组
- 省选模版复习——线性筛法
- 省选模版复习——费用流
- 省选模版复习——主席树
- C++复习0.3——模版/类型转换/异常
- 模版——函数模版、类模版
- C/C++——模版相关知识
- C++——模版:智能指针auto_ptr
- C++——模版:智能指针smart_ptr
- HOJ Octal Fractions——进制转化复习及模版补充
- 复习巩固——C中的指针
- c语言复习 —— 数组
- Designing Data Storage Architecture-Azure Storage Options
- 线程范围内的共享变量
- Native App和Web App之争纯属扯淡
- 程序员需要知道的知识
- 2012年六大API预测:企业APIs成为主流
- C++模版————复习
- 双重人格
- Preparing and Submitting an Application to the App Store with xCode4.2 and iOS5 SDK
- 使用jsp导出到excel汇总
- Ubuntu 10.10 安装谷歌PinYin拼音输入法
- Proguard混淆器Android
- Struts2 标签库、树形结构资料大全
- Cocoa框架类之间继承关系
- 选择性导出Excel文档