类模板
实现
templete <class T>
class Myclass
{
MyClass();
void swap(T &a, T &b); //如果函数返回一个不知道的类型,就用T表示
}
//构造器的实现
Myclass<T>::Myclass()
{
//初始化操作
}
代码实现
#include <iostream>
#include <string>
template <class T>
class Stack//栈类
{
public:
Stack(unsigned int size = 100);//构造器
~Stack();//析构器
void push(T value);//入栈
T pop();//出栈
private:
unsigned int size;
unsigned int sp;
T *data;
};
template <class T>
Stack<T>::Stack(unsigned int size)
{
this->size = size;
data = new T(size);
sp = 0;
}
template <class T>
Stack<T>::~Stack()
{
delete []data;//删除数组
}
template <class T>
void Stack<T>::push(T value)
{
data[sp++] = value;
}
template <class T>
T Stack<T>::pop()
{
return data[--sp];
}
int main()
{
Stack<int> intStack(100);//定义对象
intStack.push(1);//将1推入栈
intStack.push(2);//将2推入栈
intStack.push(3);//将3推入栈
std::cout << intStack.pop() << "\n";//弹栈
std::cout << intStack.pop() << "\n";//弹栈
std::cout << intStack.pop() << "\n";//弹栈
}