두 개의 클래스가있는 프로젝트에서 작업하고 있습니다. Room 및 EventRoom EventRoom이 방을 상속하고 더 많은 멤버가 있습니다. 내 코드에서동적 캐스트가 멤버를 인식하지 못합니다.
나는 (tmpPtr 방 포인터입니다) 이렇게 :
if(eventRoom)
tmpPtr = dynamic_cast<EventRoom*>(tmpPtr);
나중에 내가이하려고하면
이if(line == "false;")
tmpPtr->setComplete(false);
내가 컴파일 오류를 얻을. setComplete는 EventRoom
짧은 버전의 회원입니다 : 내가 형 룸의 객체를 생성 할, 어떤 경우에는 EventRoom. 이 코드는 현재 Room에서만 작동하지만 코드의 90 %는 EventRoom과 동일합니다. 동일한 코드를 사용하는 방법은 무엇입니까? (dynamic_cast 또는 유사한 것으로)
그렇다면 객실에서도 사용할 수 있습니까? 아니면 내가 각 점막에 대해 2 개의 다른 포인터가 필요할 것인가? –
@ 예 아니요. 예, EventRoom은 ** '방'이기 때문에 '방'에 사용할 수 있습니다. – juanchopanza
@juanchopanza "Room"과 함께 작업하는 것이 무엇을 의미하는지에 따라 달라집니다. " 'EventRoom *'에'Room * '을 넣는 것은 불가능합니다 (캐스트없이). – Angew