![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++template
lang_dye
这个作者很懒,什么都没留下…
展开
-
C++模板:静多态
一般,使用虚函数和继承实现的是动多态,即在运行期间确定调用者的类型。使用模板,可以实现静多态,在编译期间确定调用者的类型。例如我们要对某一类对象进行统一处理,使用虚函数可以这样实现:class BaseType{public: virtual void action1(){...} virtual void action2(){...}}class SubType1 : BaseType{public: virtual void action1(){...} vi原创 2021-07-10 15:16:43 · 443 阅读 · 0 评论 -
C++模板:包含模式
当我们组织模板代码时,对于模板函数,把模板函数的声明放在.h文件,模板函数的定义放在.cpp文件;对于模板类,将模板类的定义放在.h文件,成员函数的定义放在.cpp文件,编译器编译时会报错。// xx.htemplate<typename T>inline T const& max(T const& a, T const& b); // 模板函数的声明template<typename T>class MyClass // 模板类的定义原创 2021-07-10 00:39:44 · 181 阅读 · 0 评论 -
《c++ Templates》笔记 第五章 技巧性基础知识
关键字typename如果要访问依赖模板参数的类型名称,要在类型名称前添加关键字typenameclass Type{ class SubType { }}template<typename T>class MyClass{ typename T::SubType* ptr; // typename声明SubType是定义于类T内部的一种类型 T::SubType* ptr; // 不使用typename,T::SubT原创 2021-07-03 21:16:17 · 162 阅读 · 2 评论 -
《c++ Templates》笔记 第四章 非类型模板参数
非类型的类模板参数template<typename T, int MAX_SIZE> // MAX_SIZE不是类型,也可以作为模板参数class Stack{private: T elems[MAX_SIZE]; int numElems;public: Stack(); void push(T const&); void pop(); T top() const; bool empty() const{原创 2021-07-03 21:07:50 · 148 阅读 · 0 评论 -
《c++ Templates》笔记 第三章 类模板
// xx.h文件#include <stdexcept>#include <vector>template<typename T>class Stack{private: std::vector<T> elems;public: void push(T const&); void pop(); T top() const; bool empty() const { re原创 2021-07-03 18:44:05 · 86 阅读 · 0 评论 -
《c++ Templates》笔记 第二章 模板函数
模板参数的声明template<comma-separated-list-of-parameters> // template<用逗号隔开的参数列表>模板的定义和实例化// 模板的定义template<typename T>inline T const& max(T const& a, T const& b){ return a < b ? b : a;}// 实例化int a = max(1, 2);原创 2021-07-03 17:33:04 · 139 阅读 · 0 评论