发布于2026-07-16 阅读(0)
扫一扫,手机访问
在C++这片战场上,模板绝对算得上是泛型编程的核心武器。它让开发者能够写出与类型无关的代码,这在Linux环境下和其他平台上没有本质区别——换句话说,这套技能是跨平台的通用能力。

下面通过几个具体的例子,快速上手模板的使用。
函数模板先看一个最基础但也最经典的案例:一个通用的加法函数。
#include
template
T add(T a, T b) {
return a + b;
}
int main() {
int a = 1, b = 2;
double c = 3.0, d = 4.0;
std::cout << "整数相加: " << add(a, b) << std::endl;
std::cout << "浮点数相加: " << add(c, d) << std::endl;
return 0;
}
这段代码展示了函数模板的精髓:将类型参数化。不管是整数还是浮点数,同一个模板都能处理。别看代码简单,但这就是标准库一切算法和容器的基础逻辑。
类模板如果说函数模板是“通用功能”,那类模板就是“通用结构”。下面是一个简易的数组封装,演示了类模板的实际用法。
#include
template
class Array {
private:
T* data;
int size;
public:
Array(int size) : size(size) {
data = new T[size];
}
~Array() {
delete[] data;
}
T& operator[](int index) {
return data[index];
}
const T& operator[](int index) const {
return data[index];
}
int getSize() const {
return size;
}
};
int main() {
Array intArray(5);
Array doubleArray(3);
for (int i = 0; i < intArray.getSize(); ++i) {
intArray[i] = i * i;
std::cout << intArray[i] << " ";
}
std::cout << std::endl;
for (int i = 0; i < doubleArray.getSize(); ++i) {
doubleArray[i] = i * i * i;
std::cout << doubleArray[i] << " ";
}
std::cout << std::endl;
return 0;
}
可以看到,类模板允许我们在不重复写代码的前提下,灵活地用int、double或者其他自定义类型来实例化容器。这才是模板在工业级代码中如此重要的原因——它让“复用”真正变成了代码级的设计,而不仅仅是设计文档上的口号。
编译与运行在Linux下编译以上代码,只需要用g++,和编译普通C++文件没什么区别。
g++ -o template_example template_example.cpp
然后运行即可:
./template_example
说到底,模板不仅是语法糖,更是现代C++高效、可维护代码的基石。标准库里的STL、各类容器、算法,背后都离不开模板的支撑。在实际项目中,如果能用好模板,代码的通用性和可维护性会有质的提升。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8