C++ 클래스의 개인 멤버와 보호 멤버의 차이점은 무엇입니까

C Keullaeseuui Gaein Membeowa Boho Membeoui Chaijeom Eun Mueos Ibnikka



C++는 데이터와 함수를 클래스라는 단일 엔터티로 캡슐화하는 메커니즘을 제공하는 객체 지향 프로그래밍(OOP) 언어입니다. 클래스의 필수 기능 중 하나는 멤버의 액세스 수준을 지정하는 기능입니다. 객체지향 프로그래밍에서는 액세스 지정자 클래스의 필드 및 메소드의 가시성과 접근성을 제어하는 ​​데 사용됩니다. 보호 , 공공의 , 그리고 사적인 액세스 수준은 C++에서 액세스 수준의 세 가지 기본 유형입니다.

이 글에서 우리는 두 가지 주요 차이점에 대해 논의할 것입니다. 액세스 지정자 에스, 사적인 그리고 보호 C++ 클래스의 멤버.

개인 액세스 지정자

비공개 회원 ' 키워드로 선언 사적인 '. 그만큼 개인 액세스 지정자 클래스 멤버에 대한 액세스를 클래스 자체로만 제한합니다. 클래스 외부의 코드는 전용 멤버에 액세스하거나 변경할 수 없습니다. 즉, 클래스에 선언된 메서드만 액세스하고 작업할 수 있습니다. 개인 회원 , 파생 클래스도 액세스할 수 없음 개인 회원 . 일반적인 용도 개인 회원 클래스의 올바른 작동을 보장하는 것입니다. 비공개 회원 클래스 데이터를 캡슐화하고 클래스 사용자에게 추상화 수준을 제공하는 데 사용됩니다.







#include
사용 네임스페이스 성병 ;

수업 플레이어 {

사적인 :
문자열 이름 ;
정수 나이 ;

공공의 :
무효의 getPlayer ( )
{
쿠우트 << '이름을 입력하시오: ' ;
식사 >> 이름 ;
쿠우트 << '연령 입력: ' ;
식사 >> 나이 ;
}
무효의 showPlayer ( )
{
쿠우트 << '이름: ' << 이름 << ;
쿠우트 << '나이: ' << 나이 << ;
}
} ;

정수 기본 ( )
{
플레이어 PL ;
pl. getPlayer ( ) ;
pl. showPlayer ( ) ;

반품 0 ;
}

위의 코드에서는 public 멤버 메서드를 사용합니다. getPlayer() 그리고 쇼플레이어() 두 개에 액세스하려면 사적인 멤버들의 이름 그리고 나이 . 그만큼 getPlayer() 함수는 사용자로부터 입력을 받아 다음을 통해 화면에 표시합니다. 쇼플레이어() 기능.



산출







보호 액세스 지정자

보호된 회원 파생 클래스와 클래스 자체의 멤버 함수 모두에서 클래스에 액세스할 수 있습니다. 보호된 회원 구현 세부 정보를 외부에 노출하지 않고 파생 클래스에 대한 액세스 수준을 제공하는 데 사용됩니다. 보호된 회원 ' 키워드로 선언 보호 ' 그리고 콜론(:) 성격. 보호된 회원 무결성을 손상시키지 않고 클래스를 확장하고 수정할 수 있습니다. 파생 클래스는 다음을 사용할 수 있습니다. 보호된 구성원 기본 클래스의 동작을 구체화하거나 사용자 지정합니다.

다음은 클래스의 예입니다. 보호된 구성원 :



#include
네임스페이스 표준 사용;

클래스 플레이어 {
사적인:
문자열 이름;
나이;

보호:
정수 목표;

공공의:
무효 getPlayer ( )
{
쿠우트 <> 이름;
쿠우트 <> 나이;
}
무효 showPlayer ( )
{
쿠우트 << '이름: ' << 이름 << 끝;
쿠우트 << '나이: ' << 나이 << 끝;
}
} ;

클래스 player1 : 공개 플레이어 {

사적인:
문자열 국가;

공공의:
무효 set_goals ( 정수 g )
{
목표 = g;
}
무효 getPlayer1 ( )
{
getPlayer ( ) ;
쿠우트 <> 국가;
}
무효 showPlayer1 ( )
{
쿠우트 << '목표: ' << 목표 << 끝;
showPlayer ( ) ;
쿠우트 << '국가: ' << 국가 << 끝;
}
} ;

정수 메인 ( )
{
플레이어1 pl;
pl.set_goals ( 101 ) ;
pl.getPlayer1 ( ) ;
pl.showPlayer1 ( ) ;

반품 0 ;
}

그만큼 플레이어 클래스는 두 가지로 구성 개인 회원 , 이름 그리고 나이 , 하나 보호 회원, 목표 , 그리고 사적인 멤버는 내부에서 활용됩니다. 공공의 멤버 함수, getPlayer() 그리고 쇼플레이어() . 두 개의 클래스가 있으며, 플레이어 그리고 플레이어1 , 둘 다 기본 클래스입니다. 하나 사적인 회원, 국가 , 그리고 세 공공의 멤버 메소드는 플레이어1 수업. 목표 설정() 보호된 구성원을 변경하는 데 사용됩니다. 목표' 값. getPlayer1() 호출 getPlayer() 의 멤버 함수 플레이어 국가에 대한 입력을 추가로 검색하는 동안 클래스. 이와 유사하게, showPlayer1() 호출 쇼플레이어() 멤버 함수를 출력하고 목표 그리고 국가 가치.

산출

C++ 클래스의 개인 멤버와 보호 멤버의 차이점

다음은 주요 차이점 중 일부입니다. 사적인 그리고 보호 C++ 클래스의 구성원.

1: 범위 및 기능

액세스 지정자의 사용을 고려할 때 다음에 대해 신중하게 생각하는 것이 중요합니다. 범위 그리고 기능 프로그램의. ㅏ 개인 액세스 지정자 최고 수준의 보안을 제공하고 변수 및 메소드에 대한 의도하지 않은 액세스를 방지합니다. 한편, 보호된 액세스 지정자 기본 클래스에서 파생 클래스를 상속할 계획을 세울 때 필수적인 보다 광범위한 액세스 가능성과 유연성을 제공합니다.

2: 액세스 수준

주요 차이점 사적인 그리고 보호된 구성원 그들이 제공하는 액세스 수준입니다. 보호 멤버는 클래스의 파생 클래스와 멤버 함수 모두에서 액세스할 수 있지만 사적인 멤버는 클래스의 멤버 함수로만 얻을 수 있습니다.

3: 클래스의 캡슐화

사이의 또 다른 중요한 차이점 사적인 그리고 보호 멤버는 클래스의 캡슐화를 유지 관리하는 역할입니다. 데이터를 분리하고 클래스의 사용자에게 일정 수준의 추상화를 제공하기 위해 사적인 회원을 채용합니다. 보호 멤버는 상속 구조를 관리하고 파생 클래스에서 기본 클래스 멤버에 대한 액세스를 제공하는 데 사용됩니다.

마지막 생각들

사적인 그리고 보호된 구성원 C++ 클래스의 두 가지 필수 액세스 수준입니다. 그만큼 사적인 액세스 지정자는 모든 외부 사용자가 클래스 멤버에 액세스할 수 없도록 하며 정보를 유지하는 데 사용됩니다. 사적인 클래스 내에서. 대조적으로, 보호 액세스 지정자는 파생 클래스에서만 클래스 멤버에 대한 액세스를 허용하고 기본 클래스 기능을 제공하는 데 사용되며 기본 클래스의 동작을 변경하지 않고 수정을 허용합니다. 클래스 멤버의 액세스 수준은 클래스의 캡슐화를 유지하고 클래스 사용자에게 액세스 수준을 제공하는 데 중요한 역할을 합니다.