内联模板
函数内联
-
是在构建类时,在类中把函数声明和实现放在一起。
-
建议在创建类模板时,使用内联,会让代码更简洁。
TIPS
- 如果打算使用类模板,一定要给它添加一个副本构造器和赋值运算符的重载。
- C++并没有限制只能使用一个类型占位符,如果要使用一个以上的类型,声明和引用如下。
-
templete < class T ,class U> class Myclass { //... }
- 在实例化时
-
Myclass <int ,float> myClass;//以int 和float 类型为例
代码实现
#include <iostream>
#include <string>
template <class T>
class Stack//栈类
{
public:
Stack(unsigned int size = 100)//构造器
{
this->size = size;
data = new T(size);
sp = 0;
}
~Stack()//析构器
{
delete []data;//删除数组
}
void push(T value)//入栈
{
data[sp++] = value;
}
T pop()//出栈
{
return data[--sp];
}
private:
unsigned int size;
unsigned int sp;
T *data;
};
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";//弹栈
}