Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 세그먼트 트리
- 다익스트라
- BOJ
- 17503
- 최소신장트리
- c++
- 구현
- dfs
- Naver Cloud
- 정렬
- NCP
- 이분 탐색
- golang
- redis
- 16985
- 크루스칼
- mongodb
- mst
- 시뮬레이션
- gorilla/mux
- 11659
- 민준이와 마산 그리고 건우
- 백준
- 21921
- 점수 따먹기
- DP
- SWEA
- 구간합
- 누적합
- 맥주 축제
Archives
- Today
- Total
Gi-Log
C++ 객체 지향 프로그래밍 본문
객체 지향 프로그래밍이란?
프로그래밍에 필요한 데이터들의 속성, 기능, 동작, 특징 등을 추상화하여 클래스로 만들고, 클래스의 객체들이 유기적으로 동작하도록 하는 프로그래밍
객체 지향 프로그래밍의 "장점"
- 코드의 재사용이 용이함
- 유지보수가 용이함
- 대규모 프로젝트 구현에 용이함
- 실세계의 객체 간 유기적 관계를 모델링(혹은 추상화)한 것이므로 직관적인 코드 분석이 가능함
객체 지향 프로그래밍의 "단점"
- 처리 속도가 느림 - 객체의 기능이 메소드화 되어 있기 때문에, 함수 호출에 대부분의 처리 시간이 소요됨
- 객체 양에 따라서 용량이 커짐
- 설계 시 시간과 노력을 요함
객체 지향 프로그래밍의 4가지 특징
- 추상화
- 어떤 객체들의 공통된 속성, 기능, 동작, 특징 등을 파악하고 이름을 붙여, 멤버 변수나 메소드화 하는 것
- 캡슐화
- 추상화된 속성, 기능, 동작 등을 캡슐에 보관하는 것처럼 하나의 클래스로 묶는 것
- 정보 은닉
- private 접근 지정자와 같이, 외부에 공개될 필요가 없는 변수나 특징을 감추고 동작 기능만 외부로 공개하는 것
- 개발자는 클래스 내부 구현을 알지 못하여도, 효율적인 개발을 진행할 수 있음
- 상속성
- 부모 클래스의 기능이나 속성을 자식 클래스가 물려 받고, 이를 그대로 사용하거나 확장 및 변형하여 사용하는 것
- 다형성
- 객체들의 타입이 다르면 똑같은 메시지가 전달되더라도 서로 다른 동작을 하는 것
- 오버로딩: 매개 변수의 이름이나 타입 등을 달리하여, 동일한 이름의 함수를 여러 번 정의하는 것
- 오버라이딩: 부모 클래스의 메소드와 동일한 이름, 동일한 매개 변수를 지닌 메소드를 자식 클래스에서 재정의 및 확장하는 것
- 객체들의 타입이 다르면 똑같은 메시지가 전달되더라도 서로 다른 동작을 하는 것
Comments