본문 바로가기
프로그래밍/c++

c++ 클래스(class) 2

by -현's- 2013. 6. 17.
반응형



●정보은닉

- 객체 외부에서 객체 내의 멤버변수에 직접 접근하는 것을 허용하지 않고 객체 내의 변수는 private로 선언하고 여기에 접근하는 멤버함수를 public로 선언하는 기법을 정보은닉이라고 한다.


- 아래 코드에서처럼 멤버변수는 private로 선언하고 private로 선언한 변수에 접근하는 멤버함수를 선언한다.


- 일반적으로 멤버변수에 데이터를 입력하는 함수는 setter함수, 데이터를 가져오는 함수를 getter함수라고 한다.

ex)









●캡슐화

- 연관있는 데이터와 함수를 하나의 클래스로 만드는 것이다.


- 사용,수정,삭제 등 유지보수의 편의를 위해 하나의 클래스로 만든다.


- 개념은 간단하지만 캡슐화를 잘 하려면 많은 경험과 객체지향에 대한 이해,공부가 필요하다.







●생성자

- 객체 생성과 동시에 초기화하게 해준다.


- c++의 경우 아래와 같이 멤버를 초기화 할 수 없다.(java,c#은 가능)




- 생성자는 함수이고, 클래스와 같은 이름을 가지고, 리턴 타입을 선언하지 않는다.

ex)








- 매개변수가 있는 생성자

ex)





- 생성자를 정의 하지 않았을 경우 디폴트 생성자가 자동으로 생성된다.


- 생성자도 함수이므로 오버로딩이 가능하고 디폴트 매개 변수 설정도 가능하다.


- 프로그래머가 정의해 놓은 생성자가 하나라도 있으면 디폴트 생성자는 자동으로 삽입되지 않는다.










●소멸자

- 소멸자는 함수이다.


- 클래스의 이름과 동일하고 앞에 '~'가 붙는다.


- 리턴하지 않고 리턴타입을 선언하지 않는다.


- 매개변수를 받을 수 없다.


- 오버로딩 불가능하고 디폴트 매개변수 선언도 불가능하다.


- 생성자에서 메모리 동적 할당을 할 경우, 이를 해제하기 위해 반드시 소멸자를 정의해야한다.


- 메모리 동적 할당되지 않으면 반드시 사용할 필요는 없다.


- 소멸자를 정의하지 않으면 디폴트 소멸자가 생성된다.







반응형

'프로그래밍 > c++' 카테고리의 다른 글

c++ 복사생성자  (0) 2013.06.19
c++ 클래스(class) 3  (0) 2013.06.19
c++ 클래스(class) 1  (0) 2013.06.16
c++ 레퍼런스(Reference)  (0) 2013.06.13
c++ 네임스페이스(namespace)  (0) 2013.06.12

댓글