
模板编程
文章平均质量分 60
T.O.P_KING
这个作者很懒,什么都没留下…
展开
-
5 模板别名和模板参数
模板别名和参数模板别名模板参数类型非类型模板模板别名在C++11中提供了模板别名。使用它可以方便的对一些具有不同类型参数的模板命名。例如有Matrix类模板:template <typename T, int Line, int Col>class Matrix{ ....};为了可读性,我们增加2个特殊的矩阵:Square和Vector,分别表示行列相同的方阵和一维的向量。可以使用关键字using声明类型别名:template <typename T, int L原创 2022-04-07 23:45:00 · 493 阅读 · 0 评论 -
4 类模板继承
类模板继承类模板继承的成员函数是不可用的成员函数的实例化是lazy的类模板继承中有一些细节需要注意。类模板继承的成员函数是不可用的#include <iostream>class Base{public: void func(){ // (1) std::cout << "func\n"; }};class Derived: public Base{public: void callBa原创 2022-04-06 23:30:00 · 1423 阅读 · 0 评论 -
3 类模板初探
类模板类模板的定义成员函数的定义当成员函数为模板友元将成员函数定义在类外类模板的定义我们拿数组Array来举例:class Array{ public: int getSize() const { return 10; } private: int elem[10];};类Array中有一个长度为10的C数组。其中的数组类型和长度显然是可以泛化的。下面将其变为一个模板:#include <cstddef>原创 2022-04-02 17:54:56 · 656 阅读 · 0 评论 -
2 函数模板初探
函数模板和函数的重载仍然拿max函数举例。使用double重载max函数。然后分别使用float和double实例化:template <typename T>T max(T lhs,T rhs) { return (lhs > rhs)? lhs : rhs;}double max(double lhs, double rhs) { return (lhs > rhs)? lhs : rhs;}int main() { max(10.原创 2022-04-01 18:18:50 · 1064 阅读 · 0 评论 -
1 C++模板
模板入门什么时候使用模板如何创建模板当实例化模板时会发生什么?当使用相同类型实例化模板多次时,会发生什么?延迟实例化模板(类模板或函数模板)和类或函数很相似。当你实例化一个模板,你就创建了一个具体的类或函数。出于习惯,有时也将类模板称为泛型类,将函数模板成为泛型函数。为了可视化模板实例化的过程,可以使用C++ Insights。什么时候使用模板你应该使用模板当函数或类代表了一个抽象的概念,并且不局限于某个特定的类型。例如:函数max,容器vector都能用于多种类型。如何创建模板假如有如下函数:原创 2022-03-31 18:56:31 · 906 阅读 · 0 评论