> 백엔드 개발 > C++ > 본문

C가 범위 확인 연산자 ::를 사용하는 이유는 무엇입니까?

Patricia Arquette
풀어 주다: 2024-11-10 18:04:02
원래의
668명이 탐색했습니다.

Why does C   use the Scope Resolution Operator ::?

C가 범위 결정 연산자를 사용하는 이유 ::

C의 세계에서 "::"으로 표시되는 범위 결정 연산자는 이에 상응하는 "." 연산자. Java와 같은 다른 언어는 다양한 목적으로 단일 연산자를 활용하는 반면, C는 멤버 변수와 클래스 이름 간의 모호성을 해결하기 위해 특별히 맞춤화된 전용 연산자를 선택합니다.

C가 별도의 연산자를 요구하는 특이점 연산자는 멤버 변수와 파생 클래스 유형이 동일한 이름을 공유하는 시나리오를 정의하는 언어의 능력에서 유래합니다. 다음 코드 샘플을 고려하십시오.

struct foo {
  int blah;
};

struct thingy {
  int data;
};

struct bar : public foo {
  thingy foo;
};

int main() {
  bar test;
  test.foo.data = 5;
  test.foo::blah = 10;
  return 0;
}
로그인 후 복사

이 예에서 파생 클래스 bar의 멤버 변수 foo는 상위 클래스 foo와 동일한 이름을 공유합니다. 둘을 구별하기 위해 C는 범위 결정 연산자를 사용하여 "::foo::blah"를 사용하여 파생 클래스에 대한 유일한 참조를 허용합니다. 이러한 상황에서는 이러한 모호성 해결 메커니즘이 필수적입니다.

위 내용은 C가 범위 확인 연산자 ::를 사용하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿