English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
C ++의 클래스는 공개적, 비공개적, 보호적 섹션을 가지고 있으며, 각각 해당 클래스 멤버를 포함하고 있습니다.
비공개 데이터 멤버는 클래스 외에서 접근할 수 없습니다. 클래스나 친구 함수를 통해 접근할 수 있습니다. 기본적으로 모든 클래스 멤버는 비공개입니다.
클래스 내의 보호 멤버는 비공개 멤버와 유사하지만, 추출 클래스나 자식 클래스에서 접근할 수 있으며, 비공개 멤버는 접근할 수 없습니다.
클래스 내의 비공개 멤버와 보호 멤버를 보여주는 프로그램은 다음과 같습니다:
#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 << "value of a: " << a; cout << "\nvalue of b: " << b; } }; int main() { 추출된 obj; obj.func(); return 0; }
출력 결과
위 프로그램의 출력은 다음과 같습니다.
a의 값 8 b의 값 10
이제 이 프로그램을 이해해 보겠습니다.
Base 클래스에서 데이터 멤버는 a, b, c로 각각 공개적, 보호적, 비공개적입니다. 주어진 코드 단편은 다음과 같습니다.
class Base { public : int a = 8; protected : int b = 10; private : int c = 20; };
추출 클래스가 기본 클래스를 상속합니다. 이 함수func()
a와 b의 값을 출력합니다. c의 값을 출력할 수 없습니다. 왜냐하면 c의 값은 Base 클래스 전용이며 Derived 클래스에서 접근할 수 없기 때문입니다. 주어진 코드 단편은 다음과 같습니다.
class Derived : public Base { public : void func() { cout << "value of a: " << a; cout << "\nvalue of b: " << b; } };
이 함수에서main()
Derived 클래스의 객체 obj를 생성한 후func()
이 함수를 호출합니다. 주어진 코드 단편은 다음과 같습니다.
int main() { 추출된 obj; obj.func(); return 0; }