1. 외부에서 접근시

#include
class point{
public:
int pub;
protected:
int pro;
private:
int pri;
};

int main(){
using namespace std;
point a; // point 클래스에서 a 인스턴스(객체) 받음
a.pub= 10;
// a.pri= 20; // 에러
// a.pro= 30; // 에러
return 0;
}

- public은 외부에서 멤버변수로 직접 접근 가능하다.
- private은 외부에서 멤버변수로 직접 접근 불가능하다.
- protected는 외부에서 멤버변수로 직접 접근 불가능하다.

2. 내부에서 접근시

#include

class point{

public:
int pub;

void show();
protected:
int pro;
private:
int pri;
};

void point::show(){
using std::cout;
using std::endl;
pub = 10;
pro = 20;
pri = 30;
cout << pub << pro << pri << endl;
}

int main(){
point a;
a.show();
return 0;
}
// 멤버 함수 내에서는 구분없이 자유롭게 접근이 가능하다.

3. 파생 클래스에서 접근할 때

#include
class point{ // point는 기반 클래스

public:
int pub;
protected:
int pro;
private:
int pri;
};
class point2 : public point{ // point2는 point의 파생 클래스
public:
void show2();
};

void point2::show2(){
using std::cout;
using std::endl;
pub = 10;
pro = 20;
// pri = 30; 에러
cout << pub << pro << endl;
}

int main(){
point2 a;
a.show2();
return 0;
}

// 파생된 클래스에는 기반 클래스에 있는 모든 내용이 상속된다.
// 파생된 클래스에서 public 접근 가능 protected 접근 가능 private 접근 불가능

'C++' 카테고리의 다른 글

[C++] 디폴트값 의미  (0) 2019.12.06
[C++] 함수 오버로딩  (0) 2019.12.06
[C++] dll 연결 방법  (0) 2019.12.06
[C++] 동적 바인딩 virtual 사용하기  (0) 2019.12.05
[C++] 생성자와 파괴자  (0) 2019.12.05
블로그 이미지

ryancha9

https://blog.naver.com/7246lsy

,