C++의 클래스에는 해당 클래스 멤버를 포함하는 공개, 비공개 및 보호 섹션이 있습니다.
private 데이터 멤버는 클래스 외부에서 액세스할 수 없습니다. 클래스 또는 친구 함수로만 액세스할 수 있습니다. 모든 클래스 구성원은 기본적으로 비공개입니다.
클래스의 보호된 멤버는 private 멤버와 비슷하지만 파생 클래스나 자식 클래스에서 액세스할 수 있지만 private 멤버는 액세스할 수 없습니다.
클래스의 private 및 protected 멤버를 보여주는 프로그램은 다음과 같습니다. -
예시
#include <iostream> using namespace std; class Base { public : int a = 8; protected : int b = 10; private : int c = 20; }; class Derived : public Base { public : void func() { cout << "The value of a : " << a; cout << "\nThe value of b : " << b; } }; int main() { Derived obj; obj.func(); return 0; }
출력
위 프로그램의 출력은 다음과 같습니다.
The value of a : 8 The value of b : 10
이제 위의 프로그램을 이해해보자.
Base 클래스에서 데이터 멤버는 각각 public, protected 및 private인, b 및 c입니다. 이에 대한 코드 스니펫은 다음과 같습니다.
class Base { public : int a = 8; protected : int b = 10; private : int c = 20; };
Derived 클래스는 Base 클래스를 상속합니다. func() 함수는 및 b의 값을 인쇄합니다. c 값은 Base 클래스에 비공개이고 Derived 클래스에서 액세스할 수 없으므로 인쇄할 수 없습니다. 이에 대한 코드 스니펫은 다음과 같습니다.
class Derived : public Base { public : void func() { cout << "The value of a : " << a; cout << "\nThe value of b : " << b; } };
main() 함수에서 Derived 클래스의 객체 obj가 생성됩니다. 그런 다음 func() 함수가 호출됩니다. 이에 대한 코드 스니펫은 다음과 같습니다.
int main() { Derived obj; obj.func(); return 0; }