【发布时间】:2012-11-17 00:44:31
【问题描述】:
在以下代码中:
class Array {
public:
int& operator[] (unsigned i) { if (i > 99) error(); return data[i]; }
private:
int data[100];
};
int main()
{
Array a;
a[10] = 42;
a[12] += a[13];
...
}
(如果我错了,请纠正我)类型为 Array 的变量 a 在堆栈上,因为没有使用 new 来分配它。 Array类有int data[100],操作符重载返回对data中特定索引的引用。
参考question。
我的问题是 int data[100] 是在堆栈上还是在堆上?我认为它不应该是堆栈,否则像上面的引用返回如何仍然有效。
谢谢。
【问题讨论】:
标签: c++ heap-memory stack-memory