请描述:函数模板和模板函数、类模板和模板类
时间: 2024-02-25 19:53:57 浏览: 76
函数模板和模板函数是相同的概念,都是用来定义通用的函数,能够适用于多种不同类型的数据。通过在函数定义时使用类型参数来实现泛型编程,使得函数能够根据不同类型的输入参数产生不同的输出结果。例如:
```cpp
template<typename T>
void swap(T& a, T& b) {
T temp = a;
a = b;
b = temp;
}
```
类模板和模板类也是相同的概念,都是用来定义通用的类,能够适用于多种不同类型的数据。通过在类定义时使用类型参数来实现泛型编程,使得类能够根据不同类型的输入参数产生不同的实例。例如:
```cpp
template<typename T>
class Stack {
private:
T* data;
int top;
public:
Stack(int size = 10) {
data = new T[size];
top = -1;
}
~Stack() {
delete[] data;
}
void push(T element) {
data[++top] = element;
}
T pop() {
return data[top--];
}
bool empty() {
return top == -1;
}
};
```
需要注意的是,模板函数和模板类的定义需要在每个使用它们的文件中都进行一次实例化,即编译器会根据实际使用情况生成对应的函数或类,因此模板函数和模板类的定义通常放在头文件中。
阅读全文