> 백엔드 개발 > C++ > C++ 프로그램은 클래스의 전용 멤버에 액세스합니다.

C++ 프로그램은 클래스의 전용 멤버에 액세스합니다.

王林
풀어 주다: 2023-09-08 08:17:05
앞으로
1264명이 탐색했습니다.

C++ 프로그램은 클래스의 전용 멤버에 액세스합니다.

클래스의 비공개 멤버는 해당 클래스의 멤버만 접근할 수 있습니다. 이는 객체 지향 캡슐화 원칙을 유지하기 위해 수행되며 데이터 및 관련 기능이 단일 단위로 유지되고 클래스 멤버에서만 액세스할 수 있도록 보장합니다. C++에는 클래스 멤버의 가시성을 지정하는 세 가지 액세스 제어가 있습니다. 이 세 가지 액세스 제어 문자는 −

입니다.
  • Public − 클래스의 멤버가 공개적으로 표시되면 다른 클래스에서 이 멤버에 액세스할 수 있습니다.

  • 비공개 − 비공개 표시가 있는 클래스 구성원은 클래스 내에서만 액세스할 수 있습니다.

  • Protected − protected 클래스 멤버는 해당 클래스의 with9 또는 해당 하위 클래스에서만 액세스할 수 있습니다.

이 기사에서는 클래스의 비공개 멤버에 액세스하는 데만 중점을 둘 것입니다.

getter 및 setter 메서드를 사용하여 데이터 멤버에 액세스

Getter 및 setter 함수는 클래스의 비공개 멤버에 액세스하고 수정하는 데 사용됩니다. 이름에서 알 수 있듯이 getter 함수는 데이터 멤버를 반환하는 반면 setter 함수는 데이터 멤버를 "set"하거나 수정하는 데 사용됩니다. 이 개념을 더 잘 이해하기 위해 두 가지 예를 사용하지만 그 전에 기본 구문은 다음과 같습니다.

문법

Getter/ 접근자 기능 −

으아악

Setter/Mutator 기능−

으아악

Example

의 중국어 번역은

Example

입니다. 으아악

출력

으아악

다른 함수 내부에서 멤버 함수에 액세스

비공개 멤버 함수에 접근할 때도 상황은 동일합니다. 데이터 멤버에 액세스하는 것과 같은 방식으로 클래스 멤버 메서드 내부에서 액세스해야 합니다. 이름 충돌을 피하기 위해 "this" 포인터를 사용할 수 있습니다.

문법

으아악

비공개 멤버 함수를 호출하는 함수는 공개로 선언해야 합니다. 공용 함수는 이 클래스의 객체에서 호출될 때만 실행됩니다.

Example

의 중국어 번역은

Example

입니다. 으아악

출력

으아악

친구 수업 활용하기

C++에서 친구 클래스는 다른 클래스에는 표시되지 않는 다른 클래스의 private 및 protected 멤버에 액세스할 수 있는 클래스입니다. 클래스를 다른 클래스의 친구로 선언하려면 'friend' 키워드를 사용하세요. 그것이 어떻게 작동하는지 봅시다.

문법

으아악

Example

의 중국어 번역은

Example

입니다. 으아악

출력

으아악

친구 기능을 활용해보세요

C++에서 친구 함수는 친구 클래스와 유사합니다. 여기서는 클래스의 멤버가 아닌 특정 함수를 "친구"로 선언할 수 있으며 해당 함수는 클래스의 비공개 멤버에 액세스할 수 있습니다. 함수를 “friend”로 정의하는 방법의 구문을 살펴보겠습니다.

문법

으아악

Example

의 중국어 번역은

Example

입니다. 으아악

출력

으아악

결론

클래스의 비공개 데이터 멤버에 액세스할 때는 accessor/getter 및 modifier/setter 함수를 사용하는 것이 좋습니다. 이는 클래스의 데이터 멤버에 액세스하는 가장 안전한 방법입니다. 항상 기억해야 할 한 가지는 비공개 멤버에 액세스하는 함수는 공개로 선언해야 한다는 것입니다. 다른 객체지향 언어에서는 프렌드 함수를 사용할 수 없습니다. 객체지향 캡슐화의 속성이 항상 유지되는 것은 아니기 때문입니다. 친구 관계는 비대칭입니다. 클래스 A가 클래스 B를 친구로 선언하면 클래스 B는 A의 모든 멤버에 액세스할 수 있지만 A는 B의 모든 프라이빗 멤버에 액세스할 수 없습니다.

위 내용은 C++ 프로그램은 클래스의 전용 멤버에 액세스합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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