Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++ 파생 클래스에서 보호된 멤버 액세스


C++의 클래스에는 해당 클래스 멤버를 포함하는 공개, 비공개 및 보호 섹션이 있습니다. 클래스의 보호된 멤버는 클래스 외부에서 액세스할 수 없기 때문에 private 멤버와 유사합니다. 그러나 파생 클래스나 자식 클래스는 액세스할 수 있지만 private 멤버는 액세스할 수 없습니다.

C++의 파생 클래스에서 보호된 데이터 멤버에 액세스하는 방법을 보여주는 프로그램은 다음과 같습니다. -

예시

#include <iostream>
using namespace std;
class Base {
   protected :
   int num = 7;
};
class Derived : public Base {
   public :
   void func() {
      cout << "The value of num is: " << num;
   }
};
int main() {
   Derived obj;
   obj.func();
   return 0;
}

출력

위 프로그램의 출력은 다음과 같습니다.

The value of num is: 7

이제 위의 프로그램을 이해해보자.

Base 클래스에서 데이터 멤버는 보호되는 num입니다. Derived 클래스는 Base 클래스를 상속합니다. func() 함수는 num의 값을 출력합니다. 이에 대한 코드 스니펫은 다음과 같습니다.

class Base {
   protected :
   int num = 7;
};
class Derived : public Base {
   public :
   void func() {
      cout << "The value of num is: " <<< num;
   }
};

main() 함수에서 Derived 클래스의 객체 obj가 생성됩니다. 그런 다음 func() 함수가 호출됩니다. 이에 대한 코드 스니펫은 다음과 같습니다.

int main() {
   Derived obj;
   obj.func();
   return 0;
}