Gi-Log

C++ 객체 지향 프로그래밍 본문

프로그래밍 기초

C++ 객체 지향 프로그래밍

돌잔 2021. 10. 14. 02:20

객체 지향 프로그래밍이란?

프로그래밍에 필요한 데이터들의 속성, 기능, 동작, 특징 등을 추상화하여 클래스로 만들고, 클래스의 객체들이 유기적으로 동작하도록 하는 프로그래밍

객체 지향 프로그래밍의 "장점"

  1. 코드의 재사용이 용이함
  2. 유지보수가 용이함
  3. 대규모 프로젝트 구현에 용이함
  4. 실세계의 객체 간 유기적 관계를 모델링(혹은 추상화)한 것이므로 직관적인 코드 분석이 가능함

객체 지향 프로그래밍의 "단점"

  1. 처리 속도가 느림 - 객체의 기능이 메소드화 되어 있기 때문에, 함수 호출에 대부분의 처리 시간이 소요됨
  2. 객체 양에 따라서 용량이 커짐
  3. 설계 시 시간과 노력을 요함

객체 지향 프로그래밍의 4가지 특징

  • 추상화
    • 어떤 객체들의 공통된 속성, 기능, 동작, 특징 등을 파악하고 이름을 붙여, 멤버 변수나 메소드화 하는 것
  • 캡슐화
    • 추상화된 속성, 기능, 동작 등을 캡슐에 보관하는 것처럼 하나의 클래스로 묶는 것
    • 정보 은닉
      • private 접근 지정자와 같이, 외부에 공개될 필요가 없는 변수나 특징을 감추고 동작 기능만 외부로 공개하는 것
      • 개발자는 클래스 내부 구현을 알지 못하여도, 효율적인 개발을 진행할 수 있음
  • 상속성
    • 부모 클래스의 기능이나 속성을 자식 클래스가 물려 받고, 이를 그대로 사용하거나 확장 및 변형하여 사용하는 것
  • 다형성
    • 객체들의 타입이 다르면 똑같은 메시지가 전달되더라도 서로 다른 동작을 하는 것
      • 오버로딩: 매개 변수의 이름이나 타입 등을 달리하여, 동일한 이름의 함수를 여러 번 정의하는 것
      • 오버라이딩: 부모 클래스의 메소드와 동일한 이름, 동일한 매개 변수를 지닌 메소드를 자식 클래스에서 재정의 및 확장하는 것
Comments