C++的简单template……

来源:百度知道 编辑:UC知道 时间:2024/06/15 14:31:29
template <class Type> class Stack {
public:
Stack ( int=10 ); //构造函数
void Push ( const Type & item); //进栈
Type Pop ( ); //出栈
Type GetTop ( ); //取栈顶元素
void MakeEmpty ( ); //置空栈
int IsEmpty ( ) const; //判栈空否
int IsFull ( ) const; //判栈满否
}
请问template<class Type>是什么意思呀?!要声明类stack,class stack,不就行了?!为什么还要加前边的那些呢?!

您好,template<class Type>是为了说明定义的stack是一个泛型容器

如果没有template<class Type>,您定义的stack如果存放int数据的话 以后有char数据需要用到stack就要再定义一个 stack2 来为char服务

可是如果用template<class Type>定义,以后用到stack的时候如果需要int的 就直接用 stack < int > 来声明实例就可以了
要是有用到char的话 就用stack<char>来声明

希望对你有帮助

共同努力

请问template<class Type>是什么意思呀?!
答:这是要告诉编译器,我定义的是一个模板类。在声明一个对象时必须要实例化。
要声明类stack,class stack,不就行了?!
答:template<class T> class Stack与class Stack 会发生名字冲突。
为什么还要加前边的那些呢?!
答:因为该类体内有未确定类型数据成员和接口成员。
eg.Stack<int> obj;//那么obj体内那些等待确定类型的那些成员(你定义的就是Type),就会一int方式贮存。Stack<CYouDefine> a的话,那么就以CYouDefine储存。

这是类模板格式,template<class Type>是先定义一个模糊数据类型。Type可能是指int、double、float等等,都是由调用void push(const Type &item)函数时给item参数的类型而定。如push(3.44);这样调用函数,那么只要是Type的字符,编译器都会将它换成double。
这就是模板的作用。