C++에서 dynamic_cast는 사용하는 나쁜 디자인과는 5 점 만점에 5 개 파생 클래스는 내가 클래스 CAbstractNode이
을 가지고, (특수)는 메서드 SetValue()와 멤버 INT nVal 필요 단지 2;
또는 염기 가상로서
난의 setValue를 취한다() 메소드 (CAbstractNode) 를 위와 같이 2 용구
//myFunction is virtual function of base(cAbstractNode) implemented in 2 special derived classes
myFunction(CAbstractNode * obj, int val)
{
Derived_02 nodeObj = dynamic_cast<Derived_02*>(obj);
if(res != NULL)
{
nodeObj->setValue(val);
}
//remaining code goes here...
}
//myFunction is virtual function implemented in remaining 3 derived classes (setValue() is not needed here)
myFunction(CAbstractNode * obj, int val)
{
//remaining code goes here...
}
는 I 2 개 파생 클래스 동적 캐스트로 이동한다 파생 클래스 및이 메서드는 다른 3 파생 된 클래스에서 비어 유지?
가상 함수를 사용하기 위해'dynamic_cast'를 피해야합니다. –
예, 유형을 켜기 위해 동적 형 변환을 사용하면 좋지 않습니다. –
'std :: variant'를 가능한 대체물로 추가하고 싶습니다. 이 기능이 항상 클래스 내에 포함되는 것은 아닙니다. – chris