C++中的模板类和模板函数是一种泛型编程的工具,它们允许程序员编写可处理任意数据类型的代码。下面分别介绍模板类和模板函数的用法。
1. 模板类
模板类是C++中一种特殊的类,它可以接受任意数据类型的参数。模板类的基本语法是在类定义时使用尖括号<>包含类型参数。
下面是一个简单的模板类的例子:
template <typename T>
class MyClass {
private:
T value;
public:
MyClass(T val) : value(val) {}
T getValue() { return value; }
};
在这个例子中,MyClass是一个模板类,它有一个类型参数T。这个类型参数可以代表任何数据类型,比如int、double、std::string等。在类定义中,我们使用T作为类的成员变量的类型和函数参数的类型。
使用模板类时,需要在类名后面指定具体的类型参数。例如:
MyClass<int> obj(10); // 创建一个类型为int的MyClass对象
int val = obj.getValue(); // 获取obj的值,类型为int
2. 模板函数
模板函数与模板类的用法类似,它也可以接受任意数据类型的参数。模板函数的定义与普通函数的定义类似,只是在函数名前面加上template <typename T>声明类型参数。
下面是一个简单的模板函数的例子:
template <typename T>
T add(T a, T b) {
return a + b;
}
在这个例子中,add是一个模板函数,它有一个类型参数T。这个类型参数可以代表任何数据类型,比如int、double、std::string等。在函数定义中,我们使用T作为函数的参数类型和返回类型。
使用模板函数时,需要在函数名后面指定具体的类型参数。例如:
int a = 10, b = 20;
int sum = add<int>(a, b); // 调用add函数,类型为int