프로그래밍/c++

[c++] class 정의 및 접근제한자

rrruu 2018. 12. 19. 11:04
반응형

c에서 c++로 넘어오면서 새로 생긴 개념중의 하나가 class 이며 c++의 꽃이라고 불리운다.

class란 객체 지향 프로그래밍에서 class란 같은 종류의 속성고 행위를 정의한것으로 사용자 정의 데이터 형이라고 할 수 있다.


선언방법을 알아보자

1
2
3
class test_class{
    int value;
};
cs

간단한 class를 하나 정의하였다.

class 이름은 test_class이며 맴벼 변수로 int형인 value를 하나 가지고 있다.


class에는 접근제한자라는 개념이 있는데 c++에서는 default가 private이다.

접근제한자는 3가지 종류가 있다.


1. private - default 접근 제한자이며 class내부에서만 접근이 가능하다.

2. public - 어디에서나 접근이 가능하다.

3. protect - 상속받은 class에서만 사용 가능하다.


pubic과 private의 차이점을 알아보자


1
2
3
4
5
6
7
8
9
10
11
class test_class{
public:
    int value;
};
 
int test_fnc()//테스트 함수 선언
{
    test_class test; //test_class 객체 선언
    test.value = 1//public이므로 접근이 가능하다.
    return test.value; //public이므로 접근이 가능하다.
cs
접근제한자가 public이기 때문에 객체선언시 맴버변수에 접근이 가능하다.


1
2
3
4
5
6
7
8
9
10
11
class test_class{
private:
    int value;
};
 
int test_fnc()//테스트 함수 선언
{
    test_class test; //test_class 객체 선언
    test.value = 1//private이므로 접근이 불가능하다.
    return test.value; //private이므로 접근이 불가능하다.
cs

접근제한자가 private이기 때문에 맴버변수에 접근이 불가능하며 컴파일시에 오류가 난다.




반응형