【发布时间】:2010-02-23 19:04:00
【问题描述】:
我有一个结构调用'A',它有一个属性'i',像这样:
typedef struct a {
a() { i = 0;}
int i;
} A;
我想在我的 Main 类中维护一堆 A:
class Main {
public:
void save();
void doSomethingToModifyCurrentA();
void restore();
private:
A currentA;
stack<A> aStack;
}
我想编写函数 save(),它将 A(例如 i)的当前值保存到堆栈中,我可以继续 doSomethingToModifyCurrentA() 来更改 currentA。稍后,我可以通过调用 restore() 来恢复 A。
我的问题是
- 如何为 A 的副本分配内存到“堆栈”?
- 如何弹出A的副本并释放内存并恢复'currentA'的值?
【问题讨论】:
-
在 C++ 中,你不需要围绕你的结构的 typedef。
标签: c++ data-structures struct stack