Pengendali [] boleh terlebih beban berbilang kali, membenarkan penciptaan tatasusunan berbilang dimensi. Dalam kes tatasusunan dua dimensi, beban lampau sedemikian memberi anda kuasa untuk mengakses elemen menggunakan sintaks fungsi[row][col].
Pertimbangkan kod contoh berikut:
class ArrayOfArrays { public: ArrayOfArrays() { _arrayofarrays = new int*[10]; for(int i = 0; i < 10; ++i) _arrayofarrays[i] = new int[10]; } class Proxy { public: Proxy(int* _array) : _array(_array) { } int operator[](int index) { return _array[index]; } private: int* _array; }; Proxy operator[](int index) { return Proxy(_arrayofarrays[index]); } private: int** _arrayofarrays; };
Ini kelas membolehkan anda mencipta tatasusunan dua dimensi dan mengakses elemennya menggunakan pengendali [] yang terlebih beban. Sebagai contoh, anda boleh menulis:
ArrayOfArrays aoa; aoa[3][5];
Kod ini akan mengakses elemen pada baris 3, lajur 5 tatasusunan aoa. Ambil perhatian bahawa anda mesti menyediakan semakan sempadan yang sesuai untuk memastikan anda tidak cuba mengakses elemen di luar sempadan yang ditentukan tatasusunan.
Atas ialah kandungan terperinci Bagaimana Operator Overloading Boleh Mencipta Akses Tatasusunan Berbilang Dimensi dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!