1. 추상화(abstraction)
객체들의 공통적인 특징을 뽑아내는 것이다. 즉, 우리가 구현하는 객체들이 가진 공통적인 데이터와 기능을 도출해 내는 것을 의미한다. 즉, "공통의 속성이나 기능을 묶어 이름을 붙이는 것"
-> 클래스를 정의하는 과정이 추상화 과정이라고 할 수 있다.
2. 캡슐화(encapsulation)
데이터 구조와 데이터를 다루는 방법을 결합시켜 묶는 것을 말한다. 특정 객체가 독립적으로 역할을 제대로 수행가기 위해 필요한 데이터와 기능을 하나로 묶어 관리한다. 객체가 맡은 역할을 수행하기 위한 하나의 목적을 위해 데이터와 기능을 묶는 것이다.
다른 의미로도 쓰이는데 즉, 데이터는 은닉하고 그 데이터를 접근하는 기능을 밖으로 노출한다는 의미를 나타낼 때 캡슐화라는 용어를 쓴다.
->데이터를 기능이라는 캡슐로 보호한다는 것이다.
3. 상속성(inheritance)
객체지향의 꽃이다. 상속이란 상위개념의 특징을 하위 개념이 물려받는 특징을 말한다. 하나의 클래스가 가지고 있는 특징들을 그대로 다른 클래스가 돌려주고자 할 때 상속성의 특징을 사용한다.
4. 다형성(polymorphism)
약간 다른 방법으로 일을 하는 함수의 동일한 이름으로 호출해 주는 것을 말한다. 예를 들어 홍길동과 김철수가 있다고 하자. 그런데 선생님이 길동이를 바라 보면서 칠판을 지우라고 했다. 그럼 길동 나름의 방법대로 칠판을 지울것이다. 그리고 선생님은 다시 철수에게 칠판을 지우라고 명령을 했다. 철수도 철수의 방식대로 칠판을 지울것이다. 이처럼 표현은 같지만 칠판을 지우는 행위는 다르게 나타난다. 이것이 다형성이다. 같은 하나의 명령이 다른 결과로 나타나는 것을 말한다.
'Windows Developer > C++' 카테고리의 다른 글
[C++] 가상함수 (0) | 2010.07.26 |
---|---|
[C++]템플릿(template) (0) | 2010.07.20 |
[C++]STL 표준 C++ 라이브러리 (0) | 2010.07.20 |
[C++]상수 함수 (1) | 2010.07.19 |
[C++] 절차지향 vs 객체지향 (2) | 2010.07.17 |