본문 바로가기

Language/_C++

클래스(Class)

클래스 개념 :

부류를 형성하는 데이터들을 하나로 묶으며 그 데이터를 조작할 루틴, 함수들을 포함한다.



클래스의 장점 :

1. 데이터 은닉(information Hiding) : 정보를 은닉할수 있다.

2. 데이터 캡슐화(Encapsulation) : 같은 부류의 데이터와 메소드들을 묶어서 프로그래밍 할 수 있다.



클래스의 구성 : 데이터(멤버변수) + 메소드(멤버 함수)



클래스의 접근 :

1. public : 

어느곳에서의 접근도 허용한다.

(멤버변수에 접근하는 검증된 메소드들을 public 로 선언한다)


2. private :

클래스 내부에서의 접근만 허용한다.

즉, 클래스 외부에서의 접근은 금지한다.(데이터 은닉을 위해 멤버변수를 private 로 선언한다)



클래스의 사용 :

클래스를 사용하기 위해선

정의된 클래스로부터 객체(object)를 생성해야 한다.(인스턴스화한다)

즉, 설계도(클래스)로부터 우리가 사용할 물품(객체)을 만든다.

예)

int             a;                       ==       clasEx                     objec 객체
(자료형)    (변수명)                         (클래스명(자료형))     (객체(변수명))

클래스의 내부 데이터(멤버변수)와 메소드(멤버함수)에 접근하기 위해선

' . '  으로 접근한다.

ex) clasEx.add();



멤버함수의 외부 정의 :

코드의 가독성을 위해 클래스 내부에는 멤버함수의 선언만 하며

정의는 외부에서 한다.

리턴형 클래스명::함수명(파라미터)
{
        함수의 내용;
}



생성자와 소멸자 :

생성자(Constructor) :

객체를 생성하자 마자 호출되는 함수이다.(즉, 사용자에 의한 호출이 아닌 컴퓨터에 의한 호출이다)

생성자는 함수명이 클래스명과 동일하며 리턴형을 가지지 않는다.

생성자를 따로 정의하지 않을시 컴파일러에 의해 디폴트 생성자가 자동으로 삽입되며 객체 생성시 호출되게 된다.

생성자는 클래스의 내부 멤버변수들을 초기화하거나 메모리를 할당하는데 사용한다.


소멸자(Destructor) :

객체가 소멸될시에 호출되는 함수이다.(즉, 사용자에 의한 호출이 아닌 컴퓨터에 의한 호출이다)

소멸자는 함수명이 ~클래스명  이며 리턴형을 가지지 않으며 매개변수도 받을수 없다.

소멸자를 따로 정의하지 않을시 컴파일러에 의해 디폴트 생성자가 자동으로 삽입되며 객체 소멸시 호출되게 된다.

객체생성으로 인해서 할당된 메모리를 반환하는데 사용한다.



클래스 프로그래밍 :

1. 멤버변수 구상 :

사용할 멤버변수를 구상하여 선언한다.


2. 멤버함수 구상 :

멤버함수는 크게 두가지로 나누어 구상한다.

멤버변수값을 조작할 함수(일반적으로 가독성을 위해 접두사로 set 을 붙인다)

멤버변수값을 얻어올 함수(일반적으로 가독성을 위해 접두사로 get 을 붙인다)

실제 일을 할 함수


3. 헤더파일 정의 : 

사용할 레퍼런스의 선언이 들어가 있는 헤더파일

클래스 정의

사용할 함수 선언

들을 포함한 헤더파일을 작성한다.


4. 함수정의 :

사용할 함수들을 정의한 소스파일을 작성한다.


5. 메인 정의 :

실제 프로그램의 메인 함수가 정의된 소스파일을 작성한다.



예제)

4칙연산이 가능한 계산기를 클래스로 작성


'Language > _C++' 카테고리의 다른 글

함수(Function)  (2) 2010.04.04
C++ Hello World 출력  (2) 2010.03.13