C++模板类的前置声明
来源:互联网 发布:怎么设置淘宝商品打折 编辑:程序博客网 时间:2024/04/30 12:41
template<typename T>
class LinkedStack;
template<typename T>
class Node
{
friend class LinkedStack<T>;
private:
T data;
Node<T> *link;
};
template<typename T>
class LinkedStack
{
public:
LinkedStack(){ top=0;}
~LinkedStack();
bool IsEmpty()const
{return top==0;}
bool IsFull()const;
T Top()const;
LinkedStack<T>& Add(const T& x);
LinkedStack<T>& Delete(T& x);
private:
Node<T> *top;
};
template<typename T>
LinkedStack<T>::~LinkedStack()
{
Node<T>* next;
while(top)
{
next=top->link;
delete top;
top=next;
}
}
template<typename T>
bool LinkedStack<T>::IsFull()const
{
try
{
Node<T>* p=new Node<T>;
delete p;
return false;
}
//catch(NoMem){return true;}
catch(){}
}
template<typename T>
T LinkedStack<T>::Top() const
{
//if(IsEmpty())throw OutOfBounds();
if(IsEmpty())exit(0);
else
return top->data;
}
template<typename T>
LinkedStack<T>& LinkedStack<T>::Add(const T &x)
{
Node<T>* p=new Node<T>;
p->data=x;
p->link=top;
top=p;
return *this;
}
template<typename T>
LinkedStack<T>& LinkedStack<T>::Delete(T &x)
{
if(IsEmpty())throw OutOfBounds();
x=top->data;
Node<T>* p=top;
top=top->link;
delete p;
return *this;
}
- 模板类的前置声明
- C++模板类的前置声明
- 类的前置声明
- 类的前置声明
- c++ 类的前置声明
- 类前置声明的使用
- 类前置声明的使用
- c++ 类的前置声明
- C++类的前置声明
- 类前置声明的问题
- 类前置声明的应用
- C++类的前置声明
- 类前置声明的使用
- C++类的前置声明
- C++ 类的前置声明
- C++类的前置声明
- C++类的前置声明
- 模板链接与前置声明引发的血案
- plsql develop debug一个package时死在那里
- [转] 调试错误 ASSERTE(_CrtIsValidHeapPointer(pUserData))
- 为什么必须要使用CloseHandle关闭句柄
- 游戏服务器场景管理AOI方案
- 分析合成
- C++模板类的前置声明
- qt使用win32 mutex
- ITIL基础概述与实战案例分析(上)
- 可瑞芝简介
- 【C++】转贴:使用dlopen API动态地加载C++函数和类
- js 打印,打印预览
- 用户空间的spi驱动
- jasperReportsCommand说明
- android2.2源码编译