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; }