private, public, protected 공부

C/C++ 2013. 5. 28. 19:41

private : 이 속성을 가지는 멤버는 외부에서 액세스할 수 없으며, 구조체의 멤버 함수만 액세스할 수 있다.

외부에서는 프라이비트 멤버를 읽을 수 없음은 물론이고 존재 자체도 알려지지 않는다. 


public : 이 속성을 가지는 멤버는 외부로 공개되어 누구나 읽고 쓸 수 있고 함수의 경우는 호출할 수 있다.

구조체가 자신의 속성이나 동작을 외부로 공개하는 수단이 되며 퍼블릭 멤버를 소위 인터페이스라고 한다. 


protected : private와 마찬가지로 외부에서는 액세스할 수 없으나 단, 상속된 파생 클래스는 이 멤버를 액세스할 수 있다.

프라이비트 멤버는 파생 클래스에서조차도 참조할 수 없으며 오로지 자신만이 이 멤버를 참조할 수 있다는 점이 다르다. 


struct Test{

private:

int num;

char str;

void Initialize();

public:

int i;

int j;

void func(int n);

protected:

float k;

};


void main()

{

Test test;

test.num=1; // 에러

test.i=10; // 대입 가능

test.func(3); // 호출 가능

test.Initialize(); // 에러


반응형