<접근 제어 지시자>
A. Public: 어디서든 접근 가능
B. Protected: 상속관계일 때 접근 가능
C. Private: 해당 클래스에서만 접근 가능
- 굳이 사용하는 이유
: 의도치 않은 코드의 수정을 막고 객체와 객체간의 간섭이 최대한 없도록 하기 위함
[C언어]
#include<iostream>
using namespace std;
class A {
public:
int num1;
A() : num1(5), num2(6), num3(7) {}
protected:
int num2;
private:
int num3;
};
class B : public A {
/*A를 상속받은 B
즉, A: 부모 클래스
B: 자식 클래스*/
public:
void setNum() {
num1 = 10; //컴파일 OK!!
num2 = 100; //컴파일 OK!!
num3 = 1000; //컴파일 Error!!
}
};
int main(void) {
A a;
cout << a.num1 << endl; //컴파일 OK!!
cout << a.num2 << endl; //컴파일 Error!!
cout << a.num3 << endl; //컴파일 Error!!
}
friend 클래스
: friend로 선언된 다른 클래스의 private 및 protected 멤버에 접근할 수 있게 함. 특정 상황에서 클래스 내에 접근하지 못하도록 private 제한을 두었는데, 필요의 경우 해당 클래스나 함수에서 접근이 가능하도록 하는 것.