#include <vector>

class Array {
    std::vector<int> Arr;
    int n;
public:
    Array(int _n = 0) : Arr(_n), n(_n) {
    }
    ~Array(void) {
    }
    friend void f(const Array &A) {
        A.Arr[0] = 3;  // why can the Arr[0], Arr[1] be changed the value ?
        A.Arr[1] = 4;
    //  A.n = 10;        // can not be changed because of 'const class type'
    }
};

void main()
{
    Array A(5);
    f(A);
}
