以下是一个整数栈类的定义,将其改写成类模板: const int SIZE = 100; // 栈的大小 class Stack{ public: Stack(); // 构造函数 ~Stack(); // 析构函数 void Push(int n); // 在栈的末尾加入一个新元素n int Pop(); // 删除栈的末尾元素并返回它的值 private: int stack[SIZE]; // 用来存放栈元素的数组 int tos; // 目前栈中的元素个数 };
时间: 2024-02-10 21:15:51 浏览: 45
以下是改写后的类模板定义:
```c++
template<typename T, int SIZE = 100>
class Stack{
public:
Stack(); // 构造函数
~Stack(); // 析构函数
void Push(T n); // 在栈的末尾加入一个新元素n
T Pop(); // 删除栈的末尾元素并返回它的值
private:
T stack[SIZE]; // 用来存放栈元素的数组
int tos; // 目前栈中的元素个数
};
template<typename T, int SIZE>
Stack<T, SIZE>::Stack() : tos(0) {}
template<typename T, int SIZE>
Stack<T, SIZE>::~Stack() {}
template<typename T, int SIZE>
void Stack<T, SIZE>::Push(T n) {
if (tos < SIZE) {
stack[tos++] = n;
}
}
template<typename T, int SIZE>
T Stack<T, SIZE>::Pop() {
if (tos > 0) {
return stack[--tos];
}
return T();
}
```
相关推荐
![text/x-c++](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)