Not necessarily, bear in mind dynamic_cast isn't only for checking type validity ; depending on the structure of the classes in question and the inheritance hierarchy involved, it may also adjust the 'this' pointer in the process, so it's not interchangeable with static_cast except in simple cases.