个人主页:救赎小恶魔
欢迎大家来到小恶魔频道
好久不见,甚是想念
今天我们要深入讲述C++内存管理
目录
引言:
从这一章开始,我们将正式认识C++的一些模板,这也就是C++比C语言的进阶之处
废话不多说,开始讲解 。
模板
1. 泛型编程
void Swap(int& left, int& right)
{
int temp = left;
left = right;
right = temp;
}
void Swap(double& left, double& right)
{
double temp = left;
left = right;
right = temp;
}
void Swap(char& left, char& right)
{
char temp = left;
left = right;
right = temp;
}
......
使用函数重载虽然可以实现,但是有一下几个不好的地方:
- 重载的函数仅仅只是类型不同,代码的复用率比较低,只要有新类型出现时,就需要增加对应的函数
- 代码的可维护性比较低,一个出错可能所有的重载均出错
那能否告诉编译器一个模子,让编译器根据不同的类型利用该模子来生成代码呢?
答案是可以的
这里就需要引进一个泛型编程了
C++的泛型编程是一种编程范式,它允许程序员编写与类型无关的代码,这些代码可以在多种数据类型上工作,而无需为每个数据类型都编写单独的函数或类。这种特性主要通过模板(templates)来实现。
模板是泛型编程的核心。模板可以是函数模板(function templates)或类模板(class templates)。
2. 模板函数
模板函数的定义:
模板函数使用
template
关键字来声明类型参数。类型参数通常被包含在尖括号<>
中,并且用某种标识符(如T
、typename Type
等)来表示。
其基本结构是:
template <typename