c23 [C++] 개요
본문 바로가기
[C++]

[C++] 개요

by Jarvis2304 2022. 9. 12.

C++

- C언어의 객체 지향 개념을 추가한 언어

 

▶ C++ 설계 목적

▷ 객체 지향 개념 도입

- 캡슐화, 상속, 다형성

- 소프트웨어의 재사용을 통해 생산성 향샹

- 복잡하고 큰 규모의 소프트웨어의 작성, 관리, 유지보수 용이

 

▷ C언어와의 호환성

- C언어의 문법 체계 계승

- 소스 레벨 호환성: 기존에 작성된 C프로그램을 그대로 가져다 사용

- 링크 레벨 호환성: C 목적파일과 라이브러리를 C++ 프로그램에 링크

 

▷엄격한 타입 체크 

- 실행시간 오류의 가능성을 줄임

- 디버킹 편리

 

▷ 실행 시간의 효율성 저하 최소화

- 실행 시간을 저하시키는 요소와 해결 

- 작은 크기의 멤버 함수 잦은 호출 가능성 -> 인라인 함수로 실행 시간 저하 해소

 

 

 

 

 

▶ 객체 지향 :독립적입 각각의 객체로 프로그램이나 시스템을 구성하는 일

특징: 캡슐화,상속,다형성

 

 

▶ 캡슐화(Encapsulation)

- 데이터를 캡슐로 싸서 외부의 접근으로부터 보호

- C++에서 클래스(Class 키워드)로 캡슐 표현

 

▷ 클래스와 객체

클래스 - 객체를 만드는 틀

객체 - 클래스라는 틀에서 생겨난 실체

객체(object), 실체(instance)는 같은 뜻

 

 

 

이미지 출처: 명품 C++ Programming

 

 

 

▶ 상속성

▷ 객체 지향 상속(Inheritance)

- 자식이 부모의 유전자를 물려 받는 것과 유사

▷ C++ 상속

- 자식 클래스의 객체가 생성될 때 자식 클래스의 멤버와 부모 클래스에 선언된 멤버들을 가지고 탄생

 

이미지 출처: 명품 C++ Programming

 

 

 

 

▶ 다형성(Polymorphism)

- 하나의 기능이 경우에 따라 다르게 보이거나 다르게 작동하는 현상

- 연산자 중복, 함수 중복(overoading), 함수 재정의(overriding)

 

 

 

 

 

▶ C++ 언어에서 객체 지향을 도입한 목적

▷소프트웨어 생산성 향상

- 소프트웨어 생명 주기 단축 문제해결 필요

- 작성된 코드의 재사용 필요

- C++ 클래스 상속 및 객체 재사용으로 해결

 

실세계에 대한 쉬운 모델링

- 과거의 소프트웨어(절차 지향 프로그래밍,구조적 프로그래밍) 

수학 계산이나 통계 처리에 편리한 절차 지향 언어가 적합

- 현대의 소프트웨어(객체 지향 프로그래밍)

물체 혹은 객체의 상호 작용에 대한 묘사가 필요

실세계는 객체로 구성된 세계

객체를 중심으로 하는 객체 지향 언어 적합

 

 

 

 

참고문헌: 명품 C++ Programming, 네이버 백과사전

 

 

'[C++]' 카테고리의 다른 글

[C++] 접근 지정자 (캡슐화)  (0) 2022.10.03
[C++] 생성자와 소멸자  (0) 2022.10.02
[C++] 클래스, 객체 생성하기  (0) 2022.09.30
[C++] namespace  (0) 2022.09.19
[C++] 기본 입출력  (2) 2022.09.17

댓글