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