《c++ prime》读书笔记--模板与泛型编程
来源:互联网 发布:sql语句跨数据库查询 编辑:程序博客网 时间:2024/06/06 07:26
简介
泛型编程与面向对象编程一样,都依赖于某种形式的多态性,在C++中,模板是泛型编程的基础。
template<class T>
int compare(const T &t1, const T &t2)
{
if(t1 < t2)
return -1;
if(t2 < t1)
return 1;
return 0;
}
使用函数模板
cout << compare(1, 0) << endl;
cout << compare<int>(1, 0) << endl
inline函数模板
inline template<class T>
T min(const T &, const T &)
非类型模板形参,模板形参不必都是类型,在调用函数时非类型形参将用值代替,值的类型在模板形参表中指定
template<class T, size_t N>
void array_init(T (¶m)[N])
{
for(size_t i = 0; i != N; i++)
param[i] = 0;
}
使用
int x[42];
double y[10];
array_init(x);//array_init(int(&)[42])
array_init(y);//array_init(int (&)[10])
template<class T>
int compare(const T &v1, const T & v2)
{
if(v1 < v2)
return -1;
if(v2 < v1)
return 1;
return 0;
}
如果用两个const char *实参调用这个模板定义,函数将比较指针值,它将告诉我们这两个指针在内存中的相对位置,但没有说明与指针所指数组的内容有关的任何事情。
函数模板的特化
template<>
int compare<const char *>(const char * const & v1, const char * const & v2)
{
return strcmp(v1, v2);
}
在这个例子中,模板有一个类型形参和两个函数形参,函数形参是类型形参的const引用,在这里,将类型形参定为const char *.
- 《c++ prime》读书笔记--模板与泛型编程
- <<Effective C++>>读书笔记7: 模板与泛型编程
- [c++]c++prime模板和泛型编程
- 《C++Primer》读书笔记——第16章 模板与泛型编程
- Effective C++读书笔记---模板与泛型编程
- Effective C++读书笔记 第七部分 模板与泛型编程
- Effective C++ 读书笔记(七) 模板与泛型编程
- C++:模板与泛型编程
- [C++]模板与泛型编程
- 【C++】模板与泛型编程
- 面向对象编程与泛型编程---C++primer读书笔记
- c++模板与泛型编程(一)模板定义 ——《c++ primer》读书笔记
- 模板与泛型编程 -part1
- C++Prime读书笔记4
- 《C++Primer》 3.19 模板与泛型编程
- Effective C++(七)模板与泛型编程
- Effective C++(七)模板与泛型编程
- Effective C++(七)模板与泛型编程
- 74 Open Source VoIP Apps & Resources(转载)
- No init found. Try passing init=bootarg.
- tomcat配置及使用(环境变量设置及测试,一个简单的web应用实例)
- dotNetCharting使用总结
- 无法打开负载测试结果数据库
- 《c++ prime》读书笔记--模板与泛型编程
- dspace的批量导入及问题
- linux内核同步方式--自旋锁
- qt 路径设置
- VC开发指南--Visual C++/MFC入门教程
- VC开发指南--Visual C++/MFC入门教程
- VC开发指南--Visual C++/MFC入门教程
- Structure 和Class的比较
- Linux内核-第一节:系统硬件