返回完整目录 目录 2.1 类模板Stack的实现 Implementation of Class Template Stack 2.1.1 声明类模板 Declaration of Class Templates 2.1.2 成员函数实现 Implementation of Member Functions 2.1 类模板Stack的实现 Implementation of Class Template Stack 正如函数模板,可以如下方式在一个头文件中声明和定义类Stack<>: //…
类模板声明.实现与使用 Class Instantiation 使用类模板的部分成员函数 Concept 友元 方式一 方式二 类模板的全特化 类模板的偏特化 多模板参数的偏特化 默认模板参数 Type Aliases new name for complete type alias template Alias Templates for Member Types 关键字typename Using or Typedef 类模板的参数推导 Class Template Argument Ded…
返回完整目录 目录 2.2 使用Stack类模板 Use of Class Template Stack 2.2 使用Stack类模板 Use of Class Template Stack 在C++17以前,使用类模板必须显式指定模板实参[1].以下例子展示如何使用类模板Stack<> // basics/stack1test.cpp #include "stack1.hpp" #include <iostream> #include <string&g…
返回完整目录 目录 2.3 类模板的局部使用 Partial Usage of Class Templates 2.3.1 Concepts 2.3 类模板的局部使用 Partial Usage of Class Templates 类模板通常在它实例化的模板实参上进行多种操作(包括构造和析构),这给人一种印象:模板实参必须提供所有类模板的所有成员函数的所有操作.但是事实并非如此:模板实参仅需提供必要的操作而非可能需要的操作. 比如说,如果类Stack<>提供一个成员函数printOn()用于…