2012-06-08 4 views
4

기본 클래스에서 상속받을 수없는 세 가지 이름을 지정하도록 요청 받았습니다.상속받을 수없는 것

개인 회원 기능 외에도 추가 할 수있는 항목은 무엇입니까?

친구 기능에 대해 생각했지만 실제적으로 클래스에 속하지 않으므로 상속 관계가 없습니다.

+5

"이름이 'n'으로 시작하는 개인 기능, 'o'로 시작하는 개인 기능 및 '이름이'n '또는'o '로 시작하지 않는 개인 기능 : P –

+0

재미 있습니다. .. –

+0

@ R.MartinhoFernandes, 더 자세히 설명해 주시겠습니까? lolz – aProgrammer

답변

7

일반적으로 신경 써야 할 몇 가지 명백한 것들은 생성자, 할당 연산자 및 소멸자입니다.

이 모든 경우에 파생 클래스에 고유 한 새 버전이 사용자에 의해 제공되거나 컴파일러에 의해 합성됩니다 (C++ 11에서는 단순히 ' 사용 가능).

"반드시 상속받을 수 없습니다"가 반드시 정확하다고는 할 수 없습니다. 예를 들어, C++ 11은 상속하는 생성자를 추가합니다 (그러나 대부분의 과정이 여전히 다루는 C++ 98/03에는 없었습니다). C++ 11에서도 기본적으로 상속하지 않습니다.

0

개인 멤버 변수 및 개인 기반. 템플릿 인수, COM __uuids 및 클래스가 DLL에서 내보내 졌는지 여부도 상속받을 수 없습니다.

할당 연산자를 상속 할 수 없습니다.

+3

내가 틀렸다고 생각합니다. 개인 멤버 변수는 상속되지만 파생 클래스는 직접 액세스 할 수 없습니다. –

+0

@crazyffan : "액세스 권한"을 앞에 추가하십시오. 게다가, 그 이상을 제공했습니다. # – Puppy

+0

"그 이상"이지만 템플릿 인수 인 COM __uuids는 1 학년생을위한 질문이므로 범위를 벗어났습니다. 대답은 훨씬 간단해야한다고 생각합니다. –

관련 문제