博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++ template模板术语(第7章)
阅读量:2193 次
发布时间:2019-05-02

本文共 839 字,大约阅读时间需要 2 分钟。

本章介绍模板的术语,关于模板,我说通常理解的是“类模板”还是“模板类”呢?这两个含义是有区别的,

在C++中,类和联合(union)都被称为类类型(class type)。如果不加额外的限定,我们通常所说的"类(class)"是指:
用关键字class或者struct引入的类类型(class type)。需要特别注意的一点就是:类类型(class type)包括联合(union),而“类(class)”不包括联合(union)。
关于如何称呼具备模板特性的类,现今还存在一些混淆:
术语类模板(class template)说明的是:该类是一个模板:它代表的是:整个类家族的参数化描述。
另一方在,模板类(template class)通常被用于下在几个方面:
(1)作为类模板的同义词。
(2)从模板产生的类。
(3)具有一个template-id名称的类
其中,第2个含义和第3个含义的区别是很细微的,而且对于本书的其余部分,它们的区别也无关紧要。

通常我们使用类模版,函数模板和成员函数划板这些称呼。

7.2实例化和特化

模板实例化是一个通过使用具体值替换模板实能,从模板产生出普通类、函数或者成员函数的过程。这个过程最后获得的实体(譬如类、函数或者成员函数)就是我们通常所说的特化(specialization)。

7.3声明和定义

声明是一种C++构造(construct),它引入(或重新引入)一个名称到某个C++作用域(scope)中。而且,这种引入通常都包含对所引入名称的一个局部分类(partial classification)。但是,有效的声明并不要求包含被引入对象的细节。

7.4一处定义原则

“C++语言的定义”在各种实体的重新声明上面强加了一些约束,一处定义原则(或称为ODR,one-definition rule)就是这些约束的全体。这一原则的细节是相当复杂的。并且在不同的条件下变化也很大,因此我们将在后面章节详细讨论每种应用环境下面使用。

转载地址:http://ifiub.baihongyu.com/

你可能感兴趣的文章
Leetcode C++《热题 Hot 100-17》461.汉明距离
查看>>
Leetcode C++《热题 Hot 100-18》538.把二叉搜索树转换为累加树
查看>>
Leetcode C++《热题 Hot 100-21》581.最短无序连续子数组
查看>>
Leetcode C++《热题 Hot 100-22》2.两数相加
查看>>
Leetcode C++《热题 Hot 100-23》3.无重复字符的最长子串
查看>>
Leetcode C++《热题 Hot 100-24》5.最长回文子串
查看>>
Leetcode C++《热题 Hot 100-28》19.删除链表的倒数第N个节点
查看>>
Leetcode C++《热题 Hot 100-29》22.括号生成
查看>>
Leetcode C++《热题 Hot 100-47》236.二叉树的最近公共祖先
查看>>
Leetcode C++《热题 Hot 100-48》406.根据身高重建队列
查看>>
《kubernetes权威指南·第四版》第二章:kubernetes安装配置指南
查看>>
Leetcode C++《热题 Hot 100-49》399.除法求值
查看>>
Leetcode C++《热题 Hot 100-51》152. 乘积最大子序列
查看>>
Leetcode C++ 《第181场周赛-1》 5364. 按既定顺序创建目标数组
查看>>
Leetcode C++ 《第181场周赛-2》 1390. 四因数
查看>>
阿里云《云原生》公开课笔记 第一章 云原生启蒙
查看>>
阿里云《云原生》公开课笔记 第二章 容器基本概念
查看>>
阿里云《云原生》公开课笔记 第三章 kubernetes核心概念
查看>>
阿里云《云原生》公开课笔记 第四章 理解Pod和容器设计模式
查看>>
阿里云《云原生》公开课笔记 第五章 应用编排与管理
查看>>