c++模版小结
来源:互联网 发布:幼儿网络教育前景 编辑:程序博客网 时间:2024/05/16 18:40
模版是泛型编程的基础,我们所编写的类和函数能够多态地用于跨越编译时不想关的类型。一个类或一个函数可以用来操纵多种类型的对象。以下是一些模版的总结:
一、模版的定义
1、 模版形参可以是表示类型的类型形参,也可以表示常量表达式的非类型形参。
2、 函数模版定义:template <typename T>int compare(const T &v1,const T &v2)
3、 类模版可以定义数据成员、函数成员和类型成员。
类模版定义:template<class Type> class Queue
{ Type &front();
Void push (const Type &); }
4、 如果是类型形参,我们就知道该形参表示未知类型,如果是非类型形参,我们就知道它是一个未知值。用作模版形参的名字不能在模版内部重用,每个非类型形参前面必须带上类型名字。
5、 如果拿不准是否需要以typename指明一个名字是一个类型,那么指定它是个好主意。模版非类型形参是模版定义内部的常量值。
二、实例化
1、 类模版的每次实例化都会产生一个独立的类类型。
2、 想要使用类模版,就必须显式指定模版实参。 Queue <int> qi;
3、 多个类型形参的实参必须完全匹配,类型形参的实参的转换受限
4、 在某些情况下,不可能推断模版实参的类型。有必要覆盖模版实参推断机制,并显式指定为模版形参所用的类型或值。
三、类模版成员
1、 类模版中的友元声明
A、普通非模版类或函数的友元声明,将友元关系授予明确指定的类或函数。
B、 类模版或函数模版的友元声明,授予对友元所有实例的访问权。
C、 只授予对类模版或函数模版的特定实例的访问权的友元声明。
2、 任意类可以拥有本身为类模版或函数模版的成员,这种成员成为成员模版,可以定义在包含它的类或类模版定义的内部或外部。
3、 成员模版有两种模版形参:由类定义的和由成员模版本身定义的。
四、模版特化与重载
1、 模版特化是一种特化的定义,它定义了模版的不同版本,将一个或多个形参绑定到特定类型或特定值。‘
2、 函数模版可以重载:可以定义有相同名字但形参数目或类型不同的多个函数模版,也可以定义与函数模版有相同名字的普通非模版函数。
- 模版小结
- 软件测试模版小结
- c++模版小结
- 母函数模版小结
- 软件测试模版小结
- 模版小结2
- C++模版类的小结
- c语言图形模版
- 用C也能写模版
- 模版文件 target.c
- 邻接表模版c+
- Template模版实例(C++)
- 【C++】模版矩阵类
- C++template--函数模版
- 【c++】函数模版
- c++模版
- 【C++】认识模版函数
- C/C++模版
- 关于java
- 搜索--子集和
- opengl 行星系统
- python os.mkdir os.makedirs
- 类6
- c++模版小结
- 2010-11-28 22:40 二叉树算法合集(一)
- C# 实现对话框
- hdu1026
- jQuery里的trim()函数在浏览器上面支持的问题
- 饭卡----HDU_2546----01背包问题
- 类的三大特性
- CString导致使用Dll动态库无法编译的问题
- x264 移植到 ARM的方法