부재 : 단독 연산자 보단 =이 붙은 연산자가 대체적으로 효율적이였다! 이유 1. 일반적으로 대입 형태 연산자는 단독 혀애 연산자보다 효율적이다. 왜냐하면, 단독 형태 연산자는 새 객체를 반환하는 형식으로 만들어야 하지만, 대입 형태 연산자는 왼쪽 인자에다가 처리 결과를 기록하기 때문에, 이 연산자의 반환값을 담을 임시 객체를 만들어 놓을 필요가 없기 때문이다. 2. 포인터는 대입 형태 연산자와 단독 형태 연산자를 동시에 제공함으로써 클래스 사용자에게 효율과 편리성을 경우에 따라 저울질할 기회를 줄수 있다는 것 예) result = a + b + c+ d; // 세 개의 임시 객체가 사용되는데 임시 객체 하나마다 operator+가 호출된다. Or result = a; // 임시 객체가 필요 없다. re..
항목22 검색 결과
해당 글 2건
항목 22 : 단독 연산자(op) 대신에 =이 붙은 연산자(op=)를 사용하는 것이 좋을 때가 있다.
책 정리/More Effective C++ 1판
2008. 5. 22. 18:14
항목 22. 값에 의한 호출보다는 레퍼런스에 의한 호출을 선호한다.
항목 22. 값에 의한 호출보다는 레퍼런스에 의한 호출을 선호한다. 이유 2008/06/06 23:27 수정 1. 효율성이 매우 떨어 진다. 2. 상속 받은 객체가 부모객체 메소드에 들어갈 경우, 값이 짤려버린다. 1. 파생 클래스의 객체를 값에 의한 복사를 이루어질 경우, 그 비용을 많이 지불하기 때문이다. 2. 또한 객체 복사는 슬라이싱 문제(slicing problem)가 파생 객체의 복사체에 일어 날수 있기 때문이다. 해결 방법 1. 레퍼런스로 전달 한다. 주의 사항 - 2008/06/06 23:27 수정 1. 레퍼런스를 사용할때는 모호성이 없는것을 보장해야만 한다. 2. int형 이하의 데이터이고, 복사본만 쓰면 되는 경우 call by value가 더 빠르고 더 효율적이다. 1. 레퍼런스를 사..
책 정리/Effective C++ 2판
2008. 5. 10. 14:28
최근댓글