: 당신은 위의 경우에 어떤 캐스트를 필요로하지 않는C++ :베이스 포인터와 파생 클래스 비교 등이 하나의 경우 포인터를 비교했을 때 나는 몇 가지 정보에 대한 모범 사례를 싶습니다
class Base {
};
class Derived
: public Base {
};
Derived* d = new Derived;
Base* b = dynamic_cast<Base*>(d);
// When comparing the two pointers should I cast them
// to the same type or does it not even matter?
bool theSame = b == d;
// Or, bool theSame = dynamic_cast<Derived*>(b) == d?
또 다른 확실한 방법은 'static_cast'를 사용하여 둘 모두를 공통 기본으로 변환하는 것입니다. 물론, 당신은 공통 기반을 알고 있습니다. 그렇지 않으면 : 하나의 포인터가 다른 포인터의 기본 유형이면 컴파일러는 자동으로 변환을 수행합니다. –