2009-05-21 4 views
0

아래 표는 내가 만드는 클래스의 멤버 변수의 액세스 유형을 결정하는 최선의 방법입니다 (이 테이블을보기가 어려울 경우 죄송합니다. 테이블 http://www.cplusplus.com/doc/tutorial/inheritance/ 표시)?클래스의 멤버 변수의 액세스 유형을 결정하는 중

Access      public protected private 
members of the same class  yes  yes   yes 
members of derived classes yes  yes   no 
not members     yes  no   no 
+3

왜 묻는가? 튜토리얼을 믿지 않습니까? –

+0

이제 테이블이 늘어서 있습니다. 예. –

+0

Nikolai : 내가 결정할 수있는 가장 간단한 방법이 무엇인지 모르겠습니다. Martin : 테이블을 어떻게 정리 했습니까? – stanigator

답변

1

당신이 요구하는 것이 맞다면 표가 정확합니다.

단어의 의미는 메서드가있는 클래스의 멤버 변수에 항상 액세스 할 수 있다는 것입니다. 멤버 변수가 부모 클래스에 정의되어 있으면 멤버 변수가 protected 또는 public 인 경우에만 액세스 할 수 있습니다. 클래스 외부에 있다면 public 멤버 변수에만 액세스 할 수 있습니다.

'최선의 방법'은 없습니다. 이는 합리적인 방식으로 제시된 규칙입니다.

1

당신은 친구 클래스 /이 메소드를 추가해야하지만 우정은 분명하다 : C++에서 친구는 개인 부분 접촉 할 수 있습니다.

+0

그건 재밌네 ;-) – lothar

+0

내 것이 아니지만 :) –

0

가장 좋은 방법은 공개, 보호 및 비공개 키워드의 의미를 배우는 것입니다. 테이블이 도움이된다면 그것을 배우십시오. 맞습니다. 효과적인 C++ 프로그래머가되고 싶다면 호흡만큼이나 쉬워야합니다.

0

친구들을 제외하고는 정확합니다.

그런데 C와 비슷한 구조의 구조체보다 많은 클래스의 경우 모든 멤버 변수는 private이어야합니다. 보호 된 변수를 사용하는 좋은 이유는 거의 없습니다.

관련 문제