#include <iostream>
#include <cstddef>

using std::size_t;

class myArr
{
    public:
        const int & operator [] (size_t _idx) const{ return arr[_idx]; } // (1)
        int & operator [] (size_t _idx){ return arr[_idx]; } // (2)

        const size_t size() const { return MAXSIZE; }
    private:
        static constexpr size_t MAXSIZE = 10;
        int arr[MAXSIZE] = {};
};

using std::cout;
using std::endl;

int main()
{
    myArr arr1;

    for(size_t i = 0; i<arr1.size(); i+=1)
        arr1[i] = i; // call (2)

    for(size_t i = 0; i<arr1.size(); i+=1)
        cout << arr1[i] << " "; // call(2)
    cout << endl;

    const myArr arr2 = arr1;
    for(size_t i = 0; i<arr2.size(); i+=1)
        cout << arr2[i] << " "; // call (1)
    cout << endl;

    return 0;
}

文章標籤
全站熱搜
創作者介紹
創作者 大神(偽) 的頭像
大神(偽)

大神的世界

大神(偽) 發表在 痞客邦 留言(0) 人氣(23)