【发布时间】:2014-03-05 00:51:33
【问题描述】:
我已经编写了一个代码,但它似乎不起作用。每次执行程序都会出现这个错误
运行时检查失败 #2 - 围绕变量“ary”的堆栈是 损坏
无论如何这是我的代码(这是一个小代码)
#include <iostream>
using namespace std;
class Arrayz{
private:
int arry[5];
public:
Arrayz(){}
void setInf(){
for(int i = 0; i < 5; ++i){
cout << "Enter age of your friends: ";
cin >> arry[5];
}
}
const int& operator [](const int pos){
return arry[pos];
}
};
int main(){
Arrayz ary;
ary.setInf();
cout << "Here are your friend's age: " << endl;
for (int i = 0; i < 5; ++i){
cout << ary[i] << endl;
}
return 0;
}
你也可以帮助下标运算符,我似乎不明白如何声明和使用它们。另外,在没有首先理解程序的情况下编写程序似乎很愚蠢,但无论如何,我们将不胜感激:)
【问题讨论】:
-
cin >> arry[5]a) 超出范围,b) 尽管处于循环中,但它始终是相同的索引(5 应该是 i)
标签: c++ class operator-overloading subscript-operator