프로그래밍/C, C++ 공부
복사 생성자에서는 왜 파라메터의 private 멤버에 접근할 수 있을까
Valentyne
2018. 3. 16. 22:18
요약 : 접근 지정자는 object 수준이 아닌, class 수준에서 이뤄지며 그 이유는 같은 클래스의 다른 객체로 해야할 작업이 많기 때문.
간단히 생각해보면 이미 구현의 세부사항을 조작하고있는데 구현부를 숨길 이유는 전혀 없지 않은가..
테스트 코드 :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | #include <iostream> using namespace std; class CTest { public: CTest(int n) : data(n) { } int sum(const CTest& n) { return data + n.data; //n의 private 접근 가능 } private: int data; }; int main() { CTest val1(3); CTest val2(5); val1.sum(val2); // return : 8 } | cs |