제목에 대한 자료는 answere에 달려 있습니다. 그러나 귀하의 소스 코드에서 귀하의 사례에 대한 대답은 '예'입니다.
는 answere 영향을 미치는 두 가지 요인이 있습니다
당신은 C 스타일 캐스트를 사용하는 경우, 그것은 것입니다 예, 주조 재 interpert 캐스트 변환없이 availible 경우 전화 때문입니다. 대상 유형의 포인터에 모든 유형의 포인터를 전송할 수 있습니다. 그러나 MI가있는 경우 결과는 대부분의 C++ 언어 구현에 맞지 않을 수 있습니다.
memeber 함수 내에서 캐스트 (C 스타일 캐스트 없음)를 수행하면 기본 클래스가 멤버 함수 내에서 액세스 가능하기 때문에 answere가 yes가됩니다. 표현식이 기본 클래스에 액세스 할 수없는 위치에 있으면 컴파일 오류가 발생합니다.
는 C 표준 converstion ++ 표준
A prvalue of type “pointer to cv D”, where D is a class type, can be converted to a prvalue of type “pointer to cv B”, where B is a base class (Clause 10) of D.
If B is an inaccessible (Clause 11) or ambiguous (10.2) base class of D, a program that necessitates this conversion is ill-formed.
The result of the conversion is a pointer to the base class subobject of the derived class object. The null pointer value is converted to the null pointer value of the destination type.
편집 2에 대한 자세한 내용이 다음과 같습니다 answere 자세한 내용을 확인하십시오.
은 ... – Nbr44
나는 그 "개인"상속의 의미 다음을 수행 할 수있는 좋은 일이되지 않을 것 말할 것입니다. 이런 종류의 상속은 "상식으로 구현된다"는 것을 의미하지만 공개 상속은 "is-a"관계입니다. – JBL
왜 처음부터이 끔찍한 해킹을 원하겠습니까? –