기본 클래스와 파생 클래스가 있고 BaseType과 DerivedType도 있습니다. Base class i에 BaseType의 객체 (포인터가 아님)가 있습니다. Derived 클래스의 생성자에서 BaseType에서 DerivedType으로 동적 캐스팅을 수행하려고합니다.내구성있는 생성자 내부의 dynamic_cast
class DerivedType: public BaseType{};
class Base{
BaseType basetype; //not a pointer
}
class Derived : public Base{
Derived(){
//I want to do in this constructor a dynamic_cast from
// "basetype" to "DerivedType"
// when "DerivedType" inherits from "BaseType" also
}
};
나는 두 클래스 class DerivedType: public BaseType
class Derived : public Base
내가 BaseType
의 대상 (안 포인터)
을 가지고 있고가이 객체의 유형을 변경 Derived
클래스의 생성자에 필요한 Base
클래스에 있습니다 DerivedType
내 상사가 사용하라고 말했습니다. dynamic_cast
을 사용하면됩니다. 내가 'baseType 여기서'를 사용합니다 때
그것은 것를 automaticly DerivedType
하지 BaseType
나는 이해할 것이라고 생각하지 않습니다. 'Base'가'BaseType' 클래스와'Derived' 클래스의 멤버가'DerivedType' 멤버를 가지기를 원합니 까? 이것은 가능하다. 'Derived'의'DerivedType' 객체가 해당'Base'의'BaseType' 객체와 같은 객체가되기를 원합니까? 그것은 직접 표현할 수 없습니다. 어쨌든; 왜'dynamic_cast'가 필요하다고 생각하니? –
다이내믹 캐스트로 캐스팅 할 대상은 무엇입니까? 예제에서'BaseType * '에 의해 지시 된'DerivedType' 인스턴스는 없습니다. – user2079303
'dynamic_cast'가 무엇을 오해하는지 알 것 같습니다. 당신이 성취하고자하는 것에 대해 더 자세히 설명해 주시겠습니까? –