다음 코드 :C++ 다중 상속 개인 회원 ambigious 액세스
class A1 {
public:
int x;
};
class A2 {
private:
int x() { return 67; }
};
class M : public A1, public A2 {};
int main() {
M m;
m.x;
}
오류로 컴파일 :
error C2385: ambiguous access of 'x'
note: could be the 'x' in base 'A1'
note: or could be the 'x' in base 'A2'
하지만 왜? A1::x
만이 M에 표시되어야합니다. A2::x
은 순전히 로컬이어야합니다.
는, * 이름 조회 * 전에 * 멤버 액세스 확인 *이 수행 발생합니다. – WhiZTiM
질문이 이전에 질문되었습니다 : http://stackoverflow.com/questions/6397938/ambiguous-access –