가정합니다혼란
class Test
{
int num;
public:
Test(int x):num(x){}
Test(const Test &rhs):num(rhs.num+1){}
};
int main()
{
Test test(10);
Test copy = test;
}
이
복사의 num
이 11
해야하고, 내 질문은 복사 생성자 내부에 관하여이다, 왜 우리는 private 멤버에 액세스 할 수 있습니다 num
을 사용하여 복사본의 num
을 초기화 하시겠습니까? 나 혼란 스러우면 cout<<test.num<<endl
을 타이핑하면 개인 num
에 액세스하려고하기 때문에 물론 잘못된 것입니다. 그러나 복사 생성자에 대한 참조로 테스트를 통과하면 아무도 나에게 무슨 일이 일어나는지 말해 줄 수 없습니다 ?
, "cout << test.num << endl"과 같이 입력하면 혼란 스럽습니다. 물론 private num에 액세스하려고하기 때문에 잘못되었지만 사본을 참조하여 테스트를 통과하면 생성자, 작동, 아무도 나에게 whay가 여기에 계속한다고 말해 줄 수 있습니까? 내 영어가별로 좋지 않아서, 당신들이 내가하는 말을 이해할 수 있기를 바랍니다. – user1629199
영어가 훌륭하지는 않지만 요점을 이해하기에 충분합니다. 네가 나에게 묻는다면, 나는 문장을 더 짧게 유지하려고 노력할 것이고 같은 지점을 여러 번 거치지 않을 것이다. 또한, 질문에 코드를 작성할 때 뒤에 틱 (tick)으로 둘러싸면 \'코드로 서식을 지정하여 이스케이프 처리합니다 (파서가'
제안 해 주셔서 감사합니다. 내 영어 실력을 향상시키고 모든 것을 배우려고 노력하고 있습니다 – user1629199