클래스(class)

클래스(class)

main

클래스(class)

  • 관련 있는 데이터를 하나로 묶어 관리 및 사용을 편하게 하는 것
  • 하나로 묶은 데이터들은 하나의 자료형 처럼 사용할 수 있음
  • 구조체와 클래스의 다른 점 중 하나는 함수를 묶을 수 있다는 것
  • 클래스는 멤버 변수와 멤버 함수를 하나로 묶은 것을 말한다.
class group{
public:
    char a[10];
    char b[20];
    int cnt;
    int add(int x, int y) {
        return x + y;
    }
    int sub(int x, int y) {
        return x - y;
    }
};
  • 클래스를 이용하여 정의된 자료형은 변수가 아니라 객체라고 한다.
  • 객체는 인스턴스 라고도 표현한다.
  • 클래스를 기반으로 객체(인스턴스)를 생성하는 것을 인스턴스화 라고 한다.

내부 접근과 외부 접근

  • 클래스에서 생성된 변수는 클래스 내에서 접근할 때 내부접근 이라고 한다.
  • 클래스 밖에서 클래스 내부에 선언된 객체 접근할 때 외부접근이라고 한다.
class counter {
    int cnt;
    void sum(void) {
        cnt = cnt + cnt;	// 내부접근
    }
};

int main()
{
    .
    .
    counter a;
    a.cnt = 1; // 외부접근
    a.sum();  // 외부접근
    .
    .
}
  • 클래스는 public, protected, private 3가지 접근 제어가 가능하다.
  • public은 외부 접근이 가능하고 private는 내부 접근만 가능하다.
  • 멤버 변수를 외부에서 접근하지 못하도록 하는 것을 은닉화 라고 한다.
  • 클래스에 아무 선언이 없을 경우 default로 private 선언 된다.
class counter {
private:
    int cnt;
public:
    void sum(void) {
        cnt = cnt + cnt;	// 내부접근
    }
};

int main()
{
    .
    .
    counter a;
    //a.cnt = 1; // 외부접근 안됨
    a.sum();  // 외부접근
    .
    .
}

멤버함수 클래스 외부에 정의

  • 멤버함수를 :: 기호를 사용하여 클래스 외부에 정의할 수 있다.
class counter {
private:
    int cnt;
public:
    void sum();
};

void counter::sum(void) {
    cnt = cnt + cnt;	// 내부접근
}

도움이 되셨다면 더 좋은 정보 공유를 위해 광고 클릭 부탁 드립니다 :)

댓글 쓰기

0 댓글