OOP

김대익·2022년 2월 25일

c++는 OOP와 퍼포먼스를 동시에 잡아가는 언어이다.
따라서 OOP가 memory level에서 어떻게 데이터가 align되는지 알아야한다.
또한 OOP컨셉에서 공통적으로 접근이 가능한 부분은 static이라 하는데, 이는 static memory와 연관된다.
c++ OOP의 핵심인 constructor와 assignment는 L, R value와 합쳐 만들게 되면
copy, move constructor
copy, move assignment
를 사용하게 된다.
여기에 자연스럽게 따라오는 개념인 rule of 3, rule of 5가 있는데
이 또한 c++의 OOP를 정확하게 이해하려면 알고 있어야하는 개념이다.

마지막으로 c++가 OOP중심 언어지만 너무 OOP중심으로 코드를 짜게되면 퍼포먼스를 잃을 수 있다.


c++의 OOP는 class를 중심으로 구현하게 된다.
class는 object를 만드는 틀로

class Cat {
public:
	void speak();
private:
	int mAge;
}

int main() {
	Cat kitty;
    Cat nabi;
}

class Cat이 class이고
kitty, nabi가 object이다.

OOP

  • 추상화
  • 캡슐화
  • 상속성
  • 다형성

추상화: 복합한 모델을 class를 만들어가는 과정에서 특징을 뽑아내는 과정
캡슐화: 데이터를 내부에 적고, 외부에서 접근이 불가능하게 하는 것(private)
상속성: 그 객체만이 갖는 특징을 넘겨주는 것
다형성: function overloading(같은 이름의 인수가 다른 함수), function overriding(polymorphism)

0개의 댓글