Language/C++

[C++] OOP 특징

0so0 2023. 9. 18. 07:00
728x90
반응형
SMALL
SMALL

OOP 특징 및 핵심 개념에 대한 정리

OOP(Object Oriented Programming)

객체지향 프로그래밍
필요한 데이터를 추상화하여 속성과 행위를 가진 객체를 만들고 그 객체들 간의 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍 방법

 

캡슐화(Encapsulation)

객체의 속성과 행위를 하나로 묶고 구현 코드를 외부에 감춰 은닉하는 것
  • 데이터 번들링(Data bundling) - 변수와 함수를 하나의 단위로 묶는 것
  • 멤버 변수 + 멤버 함수 + 접근지정자를 =  클래스로 캡슐화 지원
  • 정보 은닉(Information hiding) - 클래스 내부 구현을 외부로 드러나지 않도록 감춤
728x90

추상화(Abstraction)

중요하고 필요한 정보만 표현하기 위해 객체의 공통적 속성과 행위를 하나로 묶는 것

 

상속(Inheritance)

상위 클래스에 정의된 기능을 가져와 재사용하거나 새로운 기능을 추가해 코드의 중복을 줄이고 재사용성을 늘릴 수 있는 방법
  • 기존에 잘 만들어진 클래스 재활용 가능
  • 공통 코드를 상위 클래스에 정의하여 반복 제거, 유지보수 편리
  • 공동의 조상을 가지는 클래스 계층을 구성함으로써 다형성 부여

 

다형성(Polymorphism)

객체가 상속을 통해 기능을 확장하고 변경하여 여러 형태의 객체로 재구성되는 것
  • 오버로딩 : 같은 이름의 메서드나 연산자를 매개변수만 변경하여 중복정의 하는 것
  • 오버라이딩 : 같은 이름과 매개변수를 가지는 메서드를 하위 클래스에서 재정의 하는 것
  • 미리 만들어둔 코드를 수정하지 않고, 클래스를 상속하여 동작 변경 가능
728x90
반응형
LIST

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

[C++] 스마트 포인터  (0) 2023.09.25
[C++] 클래스(Class)  (0) 2023.09.17
[C++] 띄어쓰기 포함 문자열 입력  (0) 2023.09.12
[C++] STL String 사용법 및 예제  (0) 2023.08.15
[C++] 연산자 오버로딩(Operator Overloading)  (0) 2023.07.17