-
28. 내부에서 사용하는 객체에 대한 ‘핸들’을 반환하는 코드는 되도록 피하자프로그래밍/Effective c++ 2016. 3. 10. 16:38클래스 내부의 객체에 대한 핸들(참조자, 포인터, 반복자)를 반환하는 함수는 최대한 피하자.이 함수를 직접적으로 사용하는 경우는 상관 없으나, 다음과 같이 새로 생성한 지역 객체에 대해서 이 함수를 쓰는 순간 무효참조 핸들(댕글링 포인터)이 된다.Point& upperLeft() const { return pData ->ulhc ; } //내부 객체에 대한 핸들을 반환.const Rectangle boundingBox(const GUIObject& obj) ; //복사생성자로 객체 생성하는 함수const Point *pUpperLeft = & (boundingBox(*pgo).upperLeft()) ; //지역 객체를 생성해 포인터에 그 핸들을 대입.--> 우변의 객체는 이 문장이 끝나는 순간 사라지기 때문에 pUpperLeft는 무효참조 핸들이 된다.
'프로그래밍 > Effective c++' 카테고리의 다른 글
30. (incomplete) (0) 2016.03.10 29. (imcomplete) (0) 2016.03.10 27. 캐스팅은 절약, 또 절약! 잊지 말자 (0) 2016.03.10 26. 변수 정의는 늦출 수 있는 데까지 늦추는 근성을 발휘하자 (0) 2016.03.10 25. 예외를 던지지 않는 swap에 대한 지원도 생각해보자. (0) 2016.03.10