아래 코드가 어떻게 실행되는지 알고 싶습니다. aproxy는 mPtr로부터 상속 받고 있습니까? 구조체 배열이 aproxy 구조체의 aproxy 메소드를 반환합니까? 이 상속생성자 본문 앞에 콜론이 상속을 나타 냅니까
struct aproxy {
aproxy(int & r) : mPtr(& r) {} // is this inheritance?
void operator = (int n) {
if (n > 1) {
throw "not binary digit";
}
*mPtr = n;
}
int * mPtr;
};
struct array {
int mArray[10];
aproxy operator[](int i) {
return aproxy(mArray[i]); // what does this line do?
}
};
int main() {
try {
array a;
a[0] = 1;
a[0] = 42;
}
catch(const char * e) {
cout << e << endl;
}
}