以下是关于C++类模板的核心概念、语法特性及高级用法的系统梳理,结合代码示例说明其应用场景和注意事项:
⚙️ 一、基本概念与定义语法
-
核心作用
类模板通过参数化类型实现通用类设计,避免为不同数据类型重复编写相似代码。例如,Box 类模板可存储任意类型数据:
template // 声明类型参数 T
class Box {
private:
T value;
public:
Box(T v) : value(v) {}
T getValue() const { return value; }
};实例化时需显式指定类型:
Box intBox(10);
Boxstd::string strBox(“Hello”);
注:类模板不支持自动类型推导,必须显式指定类型。 -
默认模板参数
可为类型参数设置默认值,简化调用:
template <typename T1, typename T2 = int>
class Pair {
T1 first;
T2 second;
};
Pair p(3.14, 5); // T2 默认为 int默认参数必须从右向左连续声明。
📝 二、成员函数实现
-
类内定义
成员函数可直接在类内部实现,如上述 Box 示例。 -
类外定义
需在每个成员函数前添加模板声明:
template