언제 많이 사용 하는가?
팩토리 함수에서 많이 쓰인다.

팩토리 함수란?
함수 인자값을 통하여 계통적인 클래스의 각각에 맞는 파생 객체를 동적으로 생성해주는 함수

왜 이것이 문제인가?
new의 주소값을 리턴하게 되면, 그 책임이 호출자에게 있어 면책 될 수 없기 때문이다(즉. 호출자가 책임져야 한다!)

효율적인 측면에서 본다면?
함수 내부에서만 쓰이는 변수라면 표현식으로 객체 선언하는것이 좋다, 함수가 끝날때 자동으로 객체의 자원을 반환해 주기 때문이다, 일전에 이런 기본적인 사항을 모른채, 함수 내부에서 new를 쓰고 delete를 하는 우를 범했다. 가뜩이나 new 연산자는 표현식 보다 600배나 더 느리다!(간단하게 실험해 보면 금방 알수 있다.)

(팩토리 함수의 역활이 필요하다면, 동적메모리 생성 밖에 없겠지만)

말하고 싶었던 부분
1. new 연산자의 비용은 표현식 대비 600배이다.
2. 메모리 누수가 이런 부분에서 많이 발생한다.






posted by 농사를 짓는 게임 프로그래머 최익필

댓글을 달아 주세요