和函数模板的定义类似,这里我们申明和定义一个Stack模板作为学习类模板编程示例。
#include <deque>
#include <stdexcept>
template< typename T>
class Stack{
public:
void push(T const& );
void pop();
T top() const;
bool empty() const{
return _elems.empty();
};
private:
std::deque<T> _elems;
};
//成员函数push的定义;
template< typename T>
void Stack<T>::push(T const& e)
{
_elems.push_front(e);
}
//成员函数pop的定义
template< typename T>

本文通过CGAL Cookbook介绍了类模板Stack的使用,使用STL deque作为底层容器,详细阐述了类模板的声明、定义及成员函数的实现。类模板简化了不同数据类型栈的编写,避免了重复工作和潜在错误,同时对比了非模板类和宏定义的实现方式。
最低0.47元/天 解锁文章
1959

被折叠的 条评论
为什么被折叠?



