c++ Stack 栈类 最简单的类型 出了点问题
#include<iostream>template <class T>
class Stack
{
public:
Stack(unsigned int size)
{
this->size=size;
data=new T;
sp=0;
}
~Stack();
void push(T dat)
{
data=dat;
}
T pop()
{
if(sp-1<0)
{
std::cout << "栈空!\n";
}
else
{
return(data[--sp]);
}
}
private:
unsigned int size;
unsigned int sp;
T *data;
};
int main()
{
Stack<int> intStack(30);
int i;
for(i=0;i<20;i++)
intStack.push(i);
for(i=0;i<20;i++) //错误定位这一行 undefined reference to Stack<int>::"stack()'
std::cout << intStack.pop();
}
求指导{:10_277:} 不清楚你用的啥编译器,反正我改了下你的,在我的IDE中能运行
#include <iostream>
using namespace std;
template <class T>
class Stack
{
public:
Stack(unsigned int size)
{
this->size = size;
data = new T;
sp = 0;
}
~Stack(){}// 你这行有问题,还有我不明白你为啥不用using namespace std;
void push(T dat)
{
data = dat;
}
T pop()
{
if (sp - 1<0)
{
cout << "栈空!\n";
// return NULL;
}
else
{
return(data[--sp]);
}
}
private:
unsigned int size;
unsigned int sp;
T *data;
};
int main()
{
Stack<int> intStack(30);
int i;
for (i = 0; i<20; i++)
intStack.push(i);
for (i = 0; i < 20; i++) //错误定位这一行 undefined reference to Stack<int>::"stack()'
cout << intStack.pop() << endl;
}
_匆匆来也 发表于 2020-6-21 12:04
不清楚你用的啥编译器,反正我改了下你的,在我的IDE中能运行
Soga 原来是 析构器没定义,大意了谢谢老哥{:10_257:}
页:
[1]