我想自定义一个堆(stcak)的实现,代码如下;
#include <iostream>
using namespace std;
const int SIZE=100;
template <typename T>
class iStack
{
public:
iStack(void);
void push(const T &n);
void pop();
T GetPop();
bool empty();
int size();
void ClaerStack();
~iStack(void);
private:
T stack[SIZE]; // array to salve elements
int top;
};
template<typename T>
iStack<T>::iStack(void)
{
top=-1;
}
template<typename T>
iStack<T>::push(const T &n)
{
if (SIZE-1==top)
{
cout<<"sorry!spill of the stack!"<<endl;
return;
}
else
{
stack[++top]=n;
}
}
template<typename T>
iStack<T>::pop()
{
if (-1==top)
{
cout<<"no element to delete!"<<endl;
return;
}
else
{
top--;
}
}
template<typename T>
iStack<T>::ClaerStack()
{
top==-1;
}
template<typename T>
iStack<T>::empty()
{
if (-1==top)
{
return true;
}
return false;
}
template<typename T>
iStack<T>::size()
{
return top+1;
}
template<typename T>
iStack<T>::~iStack(void)
{
}
编译时,报错如下:
1>f:\c++代码\stack类模板\stack类模板\istack.cpp(38): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>f:\c++代码\stack类模板\stack类模板\istack.cpp(51): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>f:\c++代码\stack类模板\stack类模板\istack.cpp(57): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>f:\c++代码\stack类模板\stack类模板\istack.cpp(67): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>f:\c++代码\stack类模板\stack类模板\istack.cpp(73): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int