는 :: C++ .NET에서 같음하지만 어려움두 객체가 같은 기본 클래스에서 상속하는지 확인하는 방법은 무엇입니까? 내가 객체를 대체하기 위해 노력하고있어
virtual bool IState::Equals(Object^ o) override{
if (o->GetType() == IState::typeid){
IState^ s = (IState^) o;
if (s->type == this->type &&
s->target_state == this->target_state &&
s->current_state == this->current_state){
return true;
}
else{
return false;
}
}
return false;
}
O이고 IState 경우이 코드는 잘 작동 실행 해요. 그러나 나는 IState로부터 State를 상속 받았다. 똑같은 내용의 State를 전달하면 My Equals 함수가 true를 반환하도록하고 싶습니다.
나는 State가 IState와 같지 않지만 같은 기본 클래스에서 상속하는지 확인하는 연산자가 있습니까? operator typeid를 오버로드하면 이이 될 수 있지만 많은 문제가있는 것 같습니다.
가치가 있다면, 이름 앞에 접두어가 붙은 클래스 (인터페이스임을 나타냄)를 사용하면 .NET 지침을 위반하게됩니다. –
은 C++/CLI와 C++이 매우 다른 짐승이기 때문에 태그를 변경했습니다. :) – jalf
왜 인터페이스에서 어떤 것을 재정의하고 있습니까? 인터페이스에는 구현이 없어야합니다. – CodeFusionMobile