부재 : 임시객체 생성을 줄여 보자. 이유 1.묵시적 타입변환으로 임시객체가 만들어 지어, 자원 낭비가 되기 때문이다. 구현방법 1. 오버로딩을 하여, 임시객체가 생성되는것을 막는다. (생성자가 묵시적 타입변환으로 임시객체가 생성되는 조건에 대해서 알고 있어야 한다.) 주의점 1. 불필요한 오버로딩은 오히려 더 나쁘다. 참조 1. 오버로딩되는 연산자 함수는 반드시 최소한 한 개의 사용자 정의타입을 매개변수로 해야 한다. 개인적인 생각 1. 편역자는 암시적 타입변환이라 하지만 나같은 경우에는 묵시적 타입변환으로 말하는게 좋을것 같다. 컴파일러 입장에선 암시적이다. 컴파일러는 사용자가 그렇게 시킨것이라고 암시적으로 알렸다고 판단하기 때문이다. 하지만 사용자는 컴파일러가 자신에게 말하지도 않고 형변환을 시켜준..
임시객체 검색 결과
해당 글 2건
항목 21 : 오버로딩은 불필요한 암시적 타입변환을 막는 한 방법이다.
책 정리/More Effective C++ 1판
2008. 5. 20. 05:00
항목 19 : 임시 객체의 원류를 정확히 이해하자.
부재 : 효율의 복병, 임시객체 개념정리 : 임시 객체란? 이름 없는 객체로, 발생되는 경우가 두가지가 있다. 1. 함수 호출을 성사시키기 위해 암시적 타입변환이 적용 될때 2. 함수가 객체를 값으로 반환 할 때 이유 1. 불필요한 임시객체 생성은 효율에 영향을 끼치기 때문이다. 해결 방법 1. 암시적 타입변환이 일어나지 않게 한다.(설계를 바꾸던가, 비상수 객체 참조자를 넘기던가) 2. 함수가 객체를 값으로 반환 할 때는 어쩔수 없기 때문에, 컴파일러가 최적화를 맞기자. 참조 1. C++ 에서 인자값이 비상수객체 참조자일 경우 암시적 타입변환이 일어나지 않는다. 왜냐하면 참조자는 전달되는 인자값이 변경되길 바랬을때 임시객체가 변경되어 잘못된 값으로 바뀔수가 있기 때문이다. 개인적인 생각 1. 사실 타입..
책 정리/More Effective C++ 1판
2008. 5. 20. 03:45
최근댓글