一个关于智能指针的c++问题
发布网友
发布时间:2023-10-11 21:34
我来回答
共2个回答
热心网友
时间:2024-11-29 09:47
pop这里可能有异常,就是当top.get是NULL的时候。 这个想怎么处理你自己弄吧
vs2005下能编译
#include <iostream>
#include <memory>
using namespace std;
template <typename _Ty>
struct Node {
auto_ptr<Node<_Ty>> next;
_Ty data;
Node(_Ty data, auto_ptr<Node<_Ty>> next) : data(data), next(next) {}
};
template <typename _Ty>
class ChainStack {
auto_ptr<Node<_Ty>> top;
public:
ChainStack() : top(0) {}
void push(_Ty data) {
top.reset(new Node<_Ty>(data, top));
}
_Ty pop() {
_Ty temp = top->data;
top = top->next;
return temp;
}
bool empty() { return top.get() == NULL;}
};
int main()
{
ChainStack<int> s;
s.push(1);
s.push(2);
s.push(4);
while (!s.empty())
{
cout << s.pop() << ends;
}
}
热心网友
时间:2024-11-29 09:48
最近也在学习,好难