블로그 이미지
이태원에서 사는 다섯식구의 무직 가장. 흰둥에미

카테고리

분류 전체보기 (184)
Itaewon (2)
ryu's?? (1)
20121210이전 (20)
20130827이전 (147)
soo'study (13)
Total38,798
Today6
Yesterday12

항목 9 - 12

20130827이전/EC++ / 2012.12.21 14:16

항목 9. 객체 생성 및 소멸 과정 중에는 절대로 가상 함수를 호출하지 말자.

           상속된 클래스의 생성, 소멸의 순서에 대해서 잠시 생각해보면, 어느 시점에 어떤 가상 함수가 호출될지를 알 수 있다.


항목 10. 대입 연산자는 *this의 참조자를 반환하게 하자.

            대입 연산 - right-associative


항목 11. operator=에서는 자기대입에 대한 처리가 빠지지 않도록 하자.

            w = w, a[i] = a[j], *px = *py 등이 자기대입이 발생할 수 있음(중복 참조에 의해)

            if (this == &rhs) return *this;

            위의 경우 분기가 발생하므로, 실행 시간 속력이 느려질 수 있음.

            this를 잠시 두고, rhs로 새 객체를 생성한뒤, this에 넣고 원래의 this는 삭제.


항목 12. 객체의 모든 부분을 빠짐없이 복사하자.

            복사 생성자와 복사 대입 연산자를 의미.

            (1) 해당 클래스의 데이터 멤버를 모두 복사, (2) 이 클래스가 상속한 기본 클래스의 복사 함수도 꼭 호출.

            복사 생성자와 복사 대입 연산자를 한쪽을 이용해 다른쪽을 구현하지 말라, 공통의 작업은 함수로 떼어내 호출하게 하라.

'20130827이전 > EC++' 카테고리의 다른 글

항목 22 - 25  (0) 2012.12.22
항목 18 - 21  (0) 2012.12.21
항목 13 - 17  (1) 2012.12.21
항목 9 - 12  (0) 2012.12.21
항목 5 - 8  (0) 2012.12.18
항목 1 - 4  (0) 2012.12.18
Posted by 흰둥에미

최근에 달린 댓글

최근에 받은 트랙백

글 보관함