在以下代码中:
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],运算符重载返回对数据中特定索引的引用。
参考问题。
我的问题是 int data[100] 是在堆栈上还是在堆上?我认为它不应该是堆栈,否则像上面那样的引用返回如何仍然有效。
谢谢。