[접근 지정자] - public, private, protected
private → 클래스 내의 멤버 함수들에게만 접근을 허용
자기 객체 안에서만 접근 가능, 클래스에서 정의된 메소드를 통해 접근할 수 있다.
접근지정자를 명시하지 않은 경우, 기본적으로 private
public → 프로그램의 모든 함수에게 접근을 허용
* 클래스의 모든 멤버 변수,함수를 public으로 한다면 구조체(struct)와 동일
→ 구조체(struct)는 기본적으로 public 이다
protected → 클래스 내의 멤버 함수와 이 클래스를 상속 받은 파생 클래스의 멤버 함수에게 접근을 허용
( 아래의 예시에서는 상속 내용까지는 다루지 않기 때문에 protected에 대한 내용은 빠져있습니다. )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
#include <iostream>
using namespace std;
class Base {
private:
int a;
int b;
public:
Base(int _a, int _b, int _c) {
a = _a;
b = _b;
c = _c;
}
int get_a() { return a; }
int get_b() { return b; }
void print_a() {cout << "a: " << a << endl;}
void print_b() { cout << "b: " << b << endl; }
int c;
};
int main() {
Base A(3, 4, 5);
//cout << A.a << endl; ==> a는 private 으로 지정되어 외부에서 접근 불가
cout <<"c : " << A.c << endl; // c는 public 으로 지정된 변수로 외부에서 접근이 가능
int tmp = 10;
cout <<"변경 전 : " << tmp << endl;
tmp = A.get_a(); // 객체 A 내부의 메소드인 get_a를 통해 private a에 대한 값을 얻을 수 있다.
cout << "변경 후 : " << tmp << endl; //get_a()를 통해 얻은 값 tmp가 A 내부에 a 값과 같아짐을 볼 수 있다.
return 0;
}
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
|
[ 실행 결과 ]
'C++' 카테고리의 다른 글
클래스(Class) (1) - 객체, 클래스 설명 (0) | 2020.03.31 |
---|---|
메모리 할당 (new,delete) (0) | 2020.01.26 |
참조자(Reference) (0) | 2020.01.23 |
이름 공간(Name Space) (0) | 2020.01.23 |