효율적인 객체 생성, 이니셜라이저

보물창고·2021년 7월 26일
0

생성자와 소멸자.

: 오브젝트 할당 시 생성자가 호출되고, 해당 스코프를 벗어나면 소멸자가 호출된다.

포폴 수정해야 할점, 그리고 개선해 나갈점.

: 포폴에 동적할당 해제를 new , delete 를 사용했는데 스마트 포인터로 변경하자.


-> 스마트 포인터로 변경하자.

-> 오브젝트의 크기가 크지 않다면 멤버오브젝트로 사용하자.

기본생성자를 벗어나 인자도 받을 수 있다.

이니셜라이저를 사용해야 하는 이유

: 임시 객체 생성을 방지하기 위해서

  • 클래스 내에 다른 클래스의 객체를 초기화하고 싶을 경우에 대한 예시이다.

    -> 아무런 문제가 없다.
    하지만, Cat(KittyAge)에서 고양이 한마리가 만들어지고 바로 사라진다.
    이를 임시객체 라고 한다.


-> 임시객체 생성 및 복사 대입이 이루어진다.
만약에 클래스의 크기가 크다면 메모리 낭비가 되는 것이다.

해결책

: 이니셜라이저를 이용하자.

-> 복사대입이 이루어지지 않고, 할당과 동시에 초기화가 이루어진다.

  • Cat도 이니셜라이저를 사용했다.

    -> 변수가 오브젝트가 아닌 간단한 데이터형일 경우,
    머신코드로는 아무런 차이가 없다.
profile
🔥🔥🔥

0개의 댓글