0
클래스의 '객체'는 일반적으로 비공개 멤버에 액세스 할 수 없다는 것을 알고 있습니다. 그러나 복사 생성자의 함수 정의에서 객체를 사용하여 private 멤버 멤버에 액세스합니다. 어째서? 예 : -클래스의 액세스 지정자
class Sample {int i,j;
public:
Sample(int a, int b)
{i=a;j=b;}
Sample(Sample &S)
{j=s.j;i=s.i;}
}
아직 확실하지 않습니다 ... "s.j"를 사용할 수있는 방법을 묻습니다. 's'는 클래스 개체이고 'j'는 개인 데이터 멤버이고, 개체는 개인 멤버에 액세스 할 수 없다는 규정이 있습니다. – vpp
@vpp - 그건 규정이 아닙니다. 'private '은 선언하는 _class_ 안에서만 멤버가 액세스 할 수 있음을 의미합니다. _same_ 클래스의 다른 객체는 두 클래스의 private 멤버에 액세스 할 수 있습니다. – Oded
@ Oded- "클래스 샘플 {int i;}; 샘플 s". 이제 클래스 외부에서 's.i'를 사용하면 오류가 발생하지만 클래스 내부에서 사용하면 오류가 발생하지 않습니다. 그렇습니까? – vpp