Exceptional C++ Style : 15. 접근 권한의 사용과 오용
Access Modifiers public protected private class 자신 접근 가능 접근 가능 접근 가능 파생 class 접근 가능 접근 가능 접근 불가 friend 접근 가능 접근 가능 접근 가능 외부 접근 가능 접근 불가 접근 불가 위의 표를 보면 private나 혹은 protected는 외부에서 접근이 불가능하다고 하지만 방법이 없는 것은 아니다. 표준을 만족하지 않고 이식성(Portability)을 만족하지 않는 많은 편법이 존재하고 있으며 그 중 악명높은 방법들을 3가지로 압축하고 있다. Forger(위조범) Pocketpicker(소매치기) The Cheat(사기꾼) 그리고 표준을 완전히 만족하면서 이식성도 보장하는 1가지 방법을 소개한다. 다음 코드를 예로 설명하면 // X.h #ifndef X_H_ #define X_H_ #include <stdio.h> class X { private: int private_; public: X() : private_(1) {} virtual ~X(); template<class T> void f(const T& t) { } int Value() { return private_; } }; #endif /* X_H_ */ 위의 코드는 private_라는 private member를 가지고 있고 1로 초기화 되어 있으며 해당 값을 변경할 수 있는 member function을 제공하지 않는다....