有关c++重载[]问题

img


请问一下这个是怎么通过输入2 3 4,而算出来的20,实在没有看懂……

这个题目出错了
我觉得应该输出
4 9 16
更合理

#include <iostream>

class HArray {
private:
    int a[3];
public:
    HArray(int i, int j, int k) {
        a[0] = i;
        a[1] = j;
        a[2] = k;
    }
    int operator[](int index) const {
        return a[index] * a[index];
    }
};

int main() {
    int i, j, k;
    std::cout << "请输入3个整数:";
    std::cin >> i >> j >> k;
    HArray arr(i, j, k);
    for (int index = 0; index < 3; ++index) {
        std::cout << arr[index] << " ";
    }
    std::cout << std::endl;
    return 0;
}