C++下标运算符

Jim*_*Jim 0 c++ class operator-overloading subscript-operator

我写了一段代码,但似乎没有用.每次执行程序时,都会收到此错误

运行时检查失败#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;
}
Run Code Online (Sandbox Code Playgroud)

你也可以帮助下标操作符,我只是似乎不明白如何声明和使用它们.在没有先了解它的情况下编写程序似乎也很愚蠢,但无论如何帮助将会受到赞赏:)

Ker*_* SB 5

你可能意味着cin >> arry[i];- i不是5.