C++ OOP

mohadang·2022년 12월 4일
0

C++

목록 보기
36/48
post-thumbnail
post-custom-banner

객체지향 프로그래밍(Object-oriented programming)

  • 일반적으로는 프로그래밍 할 때는 가장 적합
  • 사람은 사물을 객체로 바라본다
  • C는 데이터와 함수가 나뉘어져 있어 이해하기 힘듬
  • 객체지향으로 물체의 상태(데이터),동작(함수) 등을 표현하기 쉽다
  • 객체와 객체간의 조합 하여 새롭게 추상화된 객체를 볼 수 있다.
  • 객체 지향 이외에 특화된 방법
    • 함수형 프로그래밍
      • 람다???
    • 데이터 기반 프로그래밍
      • 데이터를 먼저 생각해서 프로그래밍 함.
      • 머신러닝 할 때 잘 사용
  • OOP의 핵심 개념 == "사람들이 세상을 바라보는 방식"
    • 직관적
  • 아인슈타인
    "최대한 단순하게 만들어라, 정말 복잡해야 할 부분만 복잡하게 만들어라"
  • OOP의 근본 원칙을 놓치지 말자
    -> "사람의 직관력"
  • OOP 가 복잡해졌다
    • 닷컴 버블로 인해 채용된 실력 없는 개발자들
    • 일부 디자인 패턴들
      • 디자인 패턴 책 사면 사용 안 하는게 대부분
    • 일부 객체지향 분석과 디자인
      • 객체지향을 이상한 개념과 섞어서 혼종을 만듬
    • "유지보수와 가독성"
      • 기존에 잘 동작하는 클래스를 수정할 경우 버그를 발생 시킬 수 있다.???
        • 좋은 프로그램은 기존 코드를 수정하지 않는 것이 아니라 얼마나 질 높은 테스트를 많이 하느냐에 달려 있다.
      • 클래스를 수정하는 경우가 없을까??, 수정하는 대신 클래스를 더 덧붙일까??
        -> 오늘날 현장에서는 불가능,
    • "단순한 구조에서 디자인은 시작 되어야 한다. 그리고 정말 필요하다면 복잡한 디자인을 점진적으로 도입해야 한다."
  • 다형성
    • "런타임 도중에 객체 실행 행동을 달리 할 수 있도록 해준다."

CLASS

class Vector
{
  int mX;
  int mY;
};

class MyClass
{
public:
protected:
private:
//보통 접근 제어자 별로 멤버들을 분류해서 넣는다.
};
//마지막에 ; 넣어 주어야 함
profile
mohadang
post-custom-banner

0개의 댓글