首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 开源 FAQ 第二书店 博文视点 程序员
频道: 研发 数据库 中间件 信息化 视频 .NET Java 游戏 移动 服务: 人才 外包 培训
    图书品种:235680
       
热门搜索: ASP.NET Ajax Spring Hibernate Java

小结

?C++的void指针类型能够用于创建泛型代码。泛型代码是一种能够作用于不同类型的代码。

?C++使用模板提供参数化多态性:同样的代码可以被不同的类型使用,这些类型在代码中用作函数体的参数。

?类和函数都可以拥有几个类模板参数。除了类模板参数外,类模板定义可以包含常量表达式、函数名以及作为模板参数的字符串。通常情况是使用一个int型参数对长度进行参数化。

?当泛型例程不起作用时可能会需要一个非模板函数,即一个函数的特化版本。当有多个重载函数可以使用时,重载函数选择算法决定调用哪个函数。

重载函数选择算法

1. 对非模板函数进行精确匹配(可能带有微小转换)。

2. 使用函数模板进行精确匹配。

3. 对非模板函数使用普通参数解析算法。

?vector<>或者stack<>这样的类是容器类的一种形式。容器类用于保持和检索其他类型的值。迭代器是一个指针或者类似指针的变量,它能够遍历和访问容器元素。使用迭代器遍历容器类是很有用的。

?string库是一个涵盖非常广泛的库,它使用模板创建了一系列字符串类型。使用字符串时,在string库和cstring库中,应该优先考虑string库,原因是cstring是旧的C标准库提供的char*字符串。

?complex库中的模板complex<>提供了一个复数类型,它与其他数值类型兼容。

?完整的std::vector<>由标准模板库vector提供。在多数情况下,最好使用vector类型代替基本数组类型,原因如下:vector检查了数组是否越界,所以比基本数组更安全;vector能够重新分配数组长度并且有许多相关的标准方法,所以比基本数组更灵活。

?limits库描述了本地系统的各种基础数据类型的特性,它通过模板类numeric_ limits<>为所有的数值类型提供了相应的属性信息。

查看所有评论(0)条】

最近评论



正在载入评论列表...
热点评论