C++ 模板类及模板函数的用法

378 阅读2分钟

C++中的模板类和模板函数是一种泛型编程的工具,它们允许程序员编写可处理任意数据类型的代码。下面分别介绍模板类和模板函数的用法。

1. 模板类

模板类是C++中一种特殊的类,它可以接受任意数据类型的参数。模板类的基本语法是在类定义时使用尖括号<>包含类型参数。

下面是一个简单的模板类的例子:

template <typename T>
class MyClass {
private:
    T value;
public:
    MyClass(T val) : value(val) {}
    T getValue() { return value; }
};

在这个例子中,MyClass是一个模板类,它有一个类型参数T。这个类型参数可以代表任何数据类型,比如intdoublestd::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。这个类型参数可以代表任何数据类型,比如intdoublestd::string等。在函数定义中,我们使用T作为函数的参数类型和返回类型。

使用模板函数时,需要在函数名后面指定具体的类型参数。例如:

int a = 10, b = 20;
int sum = add<int>(a, b);  // 调用add函数,类型为int