추천, 2024

에디터의 선택

C ++에서 개인 및 보호의 차이점

데이터를 숨기기 위해 C ++ 프로그래밍 언어로 정의 된 세 가지 유형의 액세스 보호가 있습니다. 데이터 숨김은 객체 지향 프로그래밍의 필수적인 부분입니다. 개인 및 보호 된 키워드는 클래스 내에서 데이터 및 기능을 숨기기위한 액세스 보호 수준을 제공합니다. 개인 멤버는 상속 될 수 있지만 제한된 범위 내에있는 동안 상속 될 수 없습니다. 이 지정자는 개인이 보호 된 것보다 더 제한적인 멤버의 가시성을 나타냅니다.

비교 차트

비교 근거은밀한보호 된
상속 클래스에 속성 상속
파생 클래스는 기본 클래스 비공개 멤버에 액세스 할 수 없습니다.파생 클래스는 기본 클래스로 보호 된 멤버에 액세스 할 수 있습니다.
접근성
클래스의 비공개 멤버는 클래스 범위 밖에서 액세스 할 수 없습니다.클래스의 보호 된 멤버는 즉시 파생 된 클래스를 제외하고 클래스 범위 밖으로 액세스 할 수 없습니다.
자기 계급에서 접근 가능
파생 클래스에서 액세스 가능아니
외부에서 접근 가능아니아니

비공개의 정의

비공개로 선언 된 클래스 멤버는 클래스 내에서만 검색 할 수 있습니다. 즉, 클래스의 개인 섹션에서 선언 된 멤버는 클래스의 friend 함수와 멤버 함수를 통해서만 액세스 할 수 있습니다. 개인 멤버는 파생 클래스에 직접 가져올 수 없으며 클래스 범위 밖에서 액세스 할 수 없습니다.

C ++ 프로그램은 개인 액세스 지정자의 개념을 보여줍니다.

 #include using namespace std; class A {private : int i; public : void get () {cout <> i; }}; 클래스 B : public A {public : void show () {i ++; cout << ""\ n incrementcpp 뒤에 입력 한 번호 "> # using namespace std; 클래스 포유류 {public : void mammalMethod (void) {cout << "포유류 카테고리에 속합니다."< 

위의 주어진 프로그램에서 자식 클래스의 한 객체는 "ob"이라는 이름으로 생성되고 부모 클래스의 멤버 함수는 호출 하위 클래스 메서드 "marine_mammalMethod"를 통해 액세스 할 수 있습니다. 그러나 부모 메서드는 "ob"개체로 직접 액세스 할 수 없습니다.

보호의 정의

클래스에서 보호 된 것으로 선언 된 클래스 멤버는 클래스의 멤버 함수 및 friend 함수를 통해서만 액세스 할 수 있습니다. 이러한 보호 된 멤버는 하위 클래스 (즉시 파생 됨)를 제외한 클래스 범위에서 액세스 할 수 없습니다. 상속에서 제한된 목적을 제공하고 제한된 방식으로 속성을 상속합니다.

아래 주어진 C ++ 프로그램은 보호 된 액세스 지정자의 개념을 보여줍니다.

 #include using namespace std; class account1 {protected : int x, y; // 파생 클래스에 접근 가능 public : void set (int a, int b) {x = a; y = b; } void show () {cout < 

위의 예제에서 하위 클래스는 데이터 멤버가 public 또는 protected로 선언 되었기 때문에 기본 클래스의 속성을 상속합니다. x와 y가 기본 클래스에서 private으로 선언 되었다면 불가능합니다.

개인 및 C ++의 주요 차이점

  1. protected 키워드는 해당 클래스에 비공개이지만 파생 클래스에서 상속 및 사용할 수있는 클래스 멤버를 작성하는 데 사용할 수 있습니다. 반대로 개인 멤버를 파생 클래스에 직접 상속 할 수 없으므로 private를 사용하는 동안이 작업을 수행 할 수 없습니다.
  2. 기본 액세스가 개인 액세스 지정자를 사용하여 상속되면 기본 클래스의 모든 공개 및 보호 멤버, 파생 클래스의 전용 멤버가 만들어집니다. 반대로, 이것은 보호 된 액세스 지정자의 경우가 아닙니다.

결론

private 및 protected는 클래스 및 해당 멤버의 가시성을 다르게 설정하는 데 사용되는 액세스 지정자입니다. 그러나 보호는 개인보다 더 융통성이 있습니다.

Top