복사 생성자에서는 왜 파라메터의 private 멤버에 접근할 수 있을까
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 |
'프로그래밍 > C, C++ 공부' 카테고리의 다른 글
static에 대한 공부 (0) | 2018.03.17 |
---|---|
기본 생성자, 복사 생성자, 복사 대입자 그리고 암시적 형변환과 explicit (0) | 2018.03.17 |
C++ 11 (0) | 2018.03.11 |
STL 컨테이너 선택 알고리즘 (0) | 2018.03.11 |
std::vector, list, deque의 벤치마크 (0) | 2018.03.05 |