외부에서 접근하면 캡슐화가 무너지지 않나?
RAII 방식의 객체의 경우 자원의 관리에 그 중점을 두었기 때문에, 그리고 설계상에 멤버 변수로써의 값으로 많이 쓰이기 때문에, 다 무너진다고 볼순 없다는게 저자의 견해이다. 개인적으로 참조자의 객체형은 외부 접근이 있는게 더 유용하다고 판단된다.
왜 더 유용한가?
자원이라는것이 엄밀히 말하면 메모리가 많은데, 윈도우 API에선 .. HDC, HPEN, ..... 등등 미칠듯이 많다. 이것들을 쓸때마다 외부접근이 안되버리면 .. 더 유용하지 않게 된다!
외부접근을 어떻게 해야 하는가?
크게 명시적 호출방법과 암시적 호출 방법이 존재한다. 명시적 호출 방법은 말 그대로 특정 멤버 함수를 이용하여, 자원의 참조자를 얻어 오는 방법이고, 암시적 호출 방법은 operator T() 방식으로 사용한다.
어떤게 더 좋은가?
개인적으론 명시적 호출 방법을 .. 많이 쓴다. 암시적 변환은 .. 상황에 맞게 알아서 변환된다는 장점이 오히려 단점이 되기 때문에 많은 상황에서는 오히려 치명적인 트로이 목마가 되고 만다. 그러므로 명시적 호출방법을 쓰는게 좋다. String 클래스를 보더라도, ... 명시적 호출을 이용하자.
이것만은 잊지말자
1.실제 자원은 참조자 형태로 접근하기 때문에, 그 클래스의 멤버 변수에 접근을 열어 두자
2. 되도록 명시적 변환을 지향하자.
관령링크
http://redinlife.egloos.com/1613442
http://kelly.springnote.com/pages/565258
RAII 방식의 객체의 경우 자원의 관리에 그 중점을 두었기 때문에, 그리고 설계상에 멤버 변수로써의 값으로 많이 쓰이기 때문에, 다 무너진다고 볼순 없다는게 저자의 견해이다. 개인적으로 참조자의 객체형은 외부 접근이 있는게 더 유용하다고 판단된다.
왜 더 유용한가?
자원이라는것이 엄밀히 말하면 메모리가 많은데, 윈도우 API에선 .. HDC, HPEN, ..... 등등 미칠듯이 많다. 이것들을 쓸때마다 외부접근이 안되버리면 .. 더 유용하지 않게 된다!
외부접근을 어떻게 해야 하는가?
크게 명시적 호출방법과 암시적 호출 방법이 존재한다. 명시적 호출 방법은 말 그대로 특정 멤버 함수를 이용하여, 자원의 참조자를 얻어 오는 방법이고, 암시적 호출 방법은 operator T() 방식으로 사용한다.
어떤게 더 좋은가?
개인적으론 명시적 호출 방법을 .. 많이 쓴다. 암시적 변환은 .. 상황에 맞게 알아서 변환된다는 장점이 오히려 단점이 되기 때문에 많은 상황에서는 오히려 치명적인 트로이 목마가 되고 만다. 그러므로 명시적 호출방법을 쓰는게 좋다. String 클래스를 보더라도, ... 명시적 호출을 이용하자.
이것만은 잊지말자
1.실제 자원은 참조자 형태로 접근하기 때문에, 그 클래스의 멤버 변수에 접근을 열어 두자
2. 되도록 명시적 변환을 지향하자.
관령링크
http://redinlife.egloos.com/1613442
http://kelly.springnote.com/pages/565258
'책 정리 > Effective C++ 3판' 카테고리의 다른 글
항목 20: '값에 의한 전달'보다는 '상수객체 참조자에 의한 전달'방식을 택하는 편이 대개 낫다. (0) | 2008.06.06 |
---|---|
항목 19: 클래스 설계는 타입 설계와 똑같이 취급하자. (0) | 2008.06.05 |
항목 18: 인터페이스 설계는 제대로 쓰기엔 쉽게, 엉터리로 쓰기엔 어렵게 하자. (0) | 2008.06.04 |
항목 17: new로 생성한 객체를 스마트 포인터에 저장하는 코드는 별도의 한 문장으로 만들자 (0) | 2008.06.03 |
항목 16: new 및 delete를 사용할 때는 형태를 반드시 맞추자 (0) | 2008.06.03 |
항목 14: 자원 관리 클래스의 복사 동작에 대해 진지하게 고찰하자 (0) | 2008.06.01 |
항목 13: 자원 관리에는 객체가 그만! (0) | 2008.06.01 |
항목 12: 객체의 모든 부분을 빠짐없이 복사하자 (0) | 2008.06.01 |
항목 11: operator=에서는 자기대입에 대한 처리가 빠지지 않도록 하자 (0) | 2008.06.01 |
항목 10: 대입 연산자는 *this의 참조자를 반환하게 하자. (0) | 2008.05.31 |
최근댓글