Chapter 4 설계 및 선언


* 인터페이스 설계는 제대로 쓰기는 쉽게, 엉터리로 쓰기에는 어렵게 한다.

예를들어 어떤 객체나 함수에 값을 전달하는데 잘못된 값 또는 잘못된 범위를 입력하면 오류가 발생하도록 만드는 등의 설계가 필요함.


* 멤버함수에서 객체를 생성하는 경우 객체의 포인터를 반환하기 보다 애초에 스마트 포인터를 반환하는 것이 문제의 소지를 덜 발생시킨다.


* 실수를 방지하는 방법

- 새로운 타입 만들기

- 타입에 대한 연산을 제한하기

- 객체의 값에 대해 제약 걸기

- 자원 관리 작업을 사용자 책임으로 놓지 않기


* 스마트포인터(shared_ptr)은 교차 DLL 문제를 미연에 방지해준다.


* 값에 의한 전달(pass-by-value)보다는 상수객체 참조자에 의한 전달(pass-by-reference) 방식을 택하는 편이 대개 낫다.

- 값에 의한 전달로 객체를 받을 경우 복사생성자에 의해 생성되며 다시 소멸이 이루어진다. 엄청난 비용이 소모됨. 복사손실 문제까지 막아준다.

- 기본제공 타입(char, int 등), STL 반복자, 함수객체 타입에 대해서는 값에 의한 전달이 더 적절하다.



+ Recent posts