안녕하세요 컴파일러 오류 (오류가 마이크로 소프트 비주얼 스튜디오 2008입니다)이 코드가 있습니다와 "범위 해상도", "주소"C++ 사업자의 우선 순위에 대한 질문
class B
{
protected:
int b;
};
class A : public B
{
public:
void foo(){ &B::b; }// error C2248: 'B::b' : cannot access protected member declared in class 'B'
};
이 코드는 동안을 무료 오류 : ::이 &보다 높은 우선 순위를 가지고 있기 때문에
class B
{
protected:
int b;
};
class A : public B
{
public:
void foo(){ &(B::b); }
};
두 조각
는 사업자의 우선 순위의 내 지식을 기반으로 나 동등한 것 (JOINT STRIKE 파이터 "의 137 페이지에 예를 표 2 참조 시스템 개발을위한 AIR VEHICLE C++ 코딩 표준 A ND DEMONSTRATION PROGRAM " http://www2.research.att.com/~bs/JSF-AV-rules.pdf)그러나 이것들은 ..."데이터에 대한 포인터 "와 관련이 있지만 연산자 우선 순위에 어떻게 부합하는지 알지 못합니다.
설명이 있으십니까?
는 포인터 - 투 - 회원B::b
의 주소를 가지고있는 첫 번째 경우, 알레산드로
우선 순위가 잘못되면 어쨌든 확실하게 (다른) 구문 오류가 발생합니까? – Flexo
차이점에 주목하자 :'int * i = & (A :: b);'그러나 int A :: * m = &A::b;' –