返回完整目录 目录 2.3 类模板的局部使用 Partial Usage of Class Templates 2.3.1 Concepts 2.3 类模板的局部使用 Partial Usage of Class Templates 类模板通常在它实例化的模板实参上进行多种操作(包括构造和析构),这给人一种印象:模板实参必须提供所有类模板的所有成员函数的所有操作.但是事实并非如此:模板实参仅需提供必要的操作而非可能需要的操作. 比如说,如果类Stack<>提供一个成员函数printOn()用于…
返回完整目录 目录 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<>: //…
前一篇文章<浅谈C++ templates 函数模板.类模板以及非类型模板参数>简单的介绍了什么是函数模板(这个最简单),类模板以及非类型模板参数.本文对类模板再做几点补充. 文章目录1. 缺省的模板实参2. Traits编程技法——以STL迭代器为例1. 缺省的模板实参这里依旧使用上一篇文章中的array类作为例子,其中有一处改变了——就是将unsigned int N = 10后面添加了一个默认的参数10: template<typename T, unsigned int N =…
返回完整目录 目录 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…