2009-02-28 4 views
14

Base 클래스가 있다고 가정합니다.우정은 C++에서 상속 받았습니까?

class Base { 
    friend SomeOtherClass; 
}; 

그리고 다른 Base 클래스를 상속합니다 :

class AnotherClass : public Base {} 

우정도 상속 받았습니까?

+0

또 다른 질문은 컴파일러를 사용하여 쉽게 대답해야합니다. – shoosh

+8

@shoosh : 컴파일러는 반드시 표준에 부합하지 않습니다. 이러한 질문은 컴파일러가 아니라 표준에 의해 응답되어야합니다. –

+0

@shoosh 어떤 컴파일러입니까? VS for Windows 또는 g ++ for unix? 어떤 버전의 C++ 표준입니까? 컴파일러가 작동하거나 작동하지 않는 경우에도 많은 질문을 할 수 있습니다. – user3728501

답변

19

는 파생 클래스를 제외한 기본 클래스의 모든 구성원을 상속합니다. 친구는 계승되지 않습니다. 여기에 설명 된대로

+5

재미있는 점은이 웹 사이트에서 정확한 말을 선택했다는 것입니다. http://www.cplusplus.com/doc/tutorial/inheritance/ – dicroce

+0

아마도 지금 물어 보는 좋은 질문은 우정이 계승 될 수 있는지를 묻는 것입니다. ? 확실히 "우정"을 갖고 싶은 모든 수업 목록을 작성하는 것보다 제가하고있는 일에 유용 할 것입니다. – user3728501

7

아니 그것은하지 않습니다 : http://www.parashift.com/c++-faq-lite/friends.html#faq-14.4

+0

링크의 예는 OP의 질문과 반대되는 경우를 보여줍니다. 'SomeOtherClass'는'AnotherClass'의 객체에서 상속받은'Base' 필드와 메소드에 접근 할 수 있다고 덧붙이고 싶습니다. –

9

없음을이 아니다.

편집 : 섹션 11.4/8

우정이 상속되지 않습니다 둘

도 이적, C++ 표준에서 인용합니다.

관련 문제