参数化类型是指将类型参数化,使得可以在使用时指定具体的类型。参数化类型可以通过模板来实现。例如,C++中的类模板就是一种参数化类型。通过在类定义中使用类型参数,可以创建一个通用的类模板,它可以根据传入的具体类型生成特定的类。
参数化类在定义时使用占位符类型来表示参数,例如:
template <typename T>
class MyContainer
{ private: T element;
public: MyContainer(T elem) : element(elem) {}
T get()
{ return element; }
};
在上面的代码中,MyContainer 是一个参数化类模板,使用 T 作为类型参数。在实例化时,可以指定具体的类型来替换 T,以创建特定的类。
MyContainer<int> container(5);
int value = container.get(); // value = 5
函数模板类似于类模板,但是是用于函数的。函数模板允许在函数定义中使用类型参数,从而使得函数能够接受不同类型的参数并进行相应的操作。
例如,下面是一个简单的函数模板示例:
template <typename T>
T add(T a, T b)
{ return a + b; }
在上面的代码中,add
是一个函数模板,它使用类型参数 T
来定义函数的参数类型和返回类型。这使得 add
函数可以接受不同类型的参数,并返回相应类型的结果。
int sum = add(3, 5);
// sum = 8
double result = add(2.5, 3.7);
// result = 6.2
函数模板和类模板都提供了一种通用的机制,使得程序员可以编写可重用的代码,并根据需要使用不同的类型进行实例化。它们在C++中广泛使用,可以大大提高代码的灵活性和可扩展性。