Nạp chồng operator[] cho phép đối tượng class được truy cập như mảng: obj[index]. Trả về tham chiếu (int&) để cho phép cả đọc và ghi.
Ví dụ: Class Arr với kiểm tra giới hạn
#include <iostream>
#include <cstdlib>
using namespace std;
const int MAX = 7;
class Arr {
int A[MAX];
int size;
public:
Arr(int s, int initVal) {
if (s > MAX) { cerr << "Vượt size max\n"; exit(1); }
size = s;
for (int i = 0; i < size; ++i) A[i] = initVal;
}
int& operator[](int i) {
if (i < 0 || i >= size) { cerr << "Chỉ số ngoài phạm vi\n"; exit(1); }
return A[i]; // trả về tham chiếu để gán được: a[i] = 10;
}
};
int main() {
Arr a(7, 0);
for (int i = 0; i < 7; ++i)
a[i] = i * 10; // ghi
cout << "Phần tử:\n";
for (int i = 0; i < 7; ++i)
cout << a[i] << endl; // đọc
return 0;
}
Kết quả
Phần tử: 0 10 20 30 40 50 60
Lưu ý: Nên cung cấp hai phiên bản: const int& operator[](int) const cho đối tượng const, và int& operator[](int) cho đối tượng non-const.