C/C++模版
来源:互联网 发布:youcam摄像头软件 编辑:程序博客网 时间:2024/05/17 23:59
函数模板
template <class T> void swap(T& a, T& b){}
当调用模板函数时类型T就会被“被调用时的实参类型”自动所代替,比如swap(a,b)其中a和b是int 型,这时模板函数swap中的形参T就会被int 所代替。不能在函数调用的参数中指定模板形参的类型,对函数模板的调用使用实参自动推演来进行。
类模板
类模板形参不存在实参推演的问题 必须通过尖括号表明 A<int> m
template<class T> class A{
public:
T g(T a,Tb);
A();
};
template<classT> A<T>::A(){}
template<classT> T A<T>::g(T a,T b){
return a+b;
}
模板的形参
类型模板形参:类型形参由关见字class或typename后接说明符构成,如template<class T> void h(T a){};其中T就是一个类型形参
非类型模板形参:模板的非类型形参也就是内置类型形参,
如template<class T, int a> classB{};其中int a就是非类型的模板形参。
如果有int b,这时A<int, b> m;将出错,因为b不是常量。
如果const int b,这时A<int, b> m;就是正确的,因为这时b是常量。
非类型形参一般不应用于函数模板中。
可以为类模板的类型形参提供默认值,但不能为函数模板的类型形参提供默认值。函数模板和类模板都可以为模板的非类型形参提供默认值
template<class T1, class T2=int>class A{};为第二个模板类型形参T2提供int型的默认值。
在类模板的外部定义类中的成员时template 后的形参表应省略默认的形参类型。
比如template<class T1, classT2=int> class A{public: void h();};
定义方法为template<class T1,class T2> voidA<T1,T2>::h(){}
- c语言图形模版
- 用C也能写模版
- 模版文件 target.c
- 邻接表模版c+
- Template模版实例(C++)
- 【C++】模版矩阵类
- C++template--函数模版
- 【c++】函数模版
- c++模版
- 【C++】认识模版函数
- C/C++模版
- C++——模版:函数模版
- C++——模版:类模版
- [C++] 模版双向鍊表
- 高精度运算模版C语言
- 简单理解 C ++ 中的模版
- 【C/C++】C++模版基础知识点
- C/C++——模版相关知识
- Linux下JNI的使用方法
- 十月英语
- 如何让 vim 成为我们的神器
- ls命令,alias命令及which命令
- vue引入element-ui 2.0 后报错问题解决措施
- C/C++模版
- Spring schema与命名空间(学习笔记)
- hadoop编程(8)-MapReduce案例:次排序(Secondary Sort)详解
- Android深入了解自定义属性
- java浅拷贝VS深拷贝
- 004:神秘的数组初始化
- [luogu1272]重建道路(树形dp)
- 一月总结
- 通用链表,队列的实现