Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Название темы: Обьясните разницу
Показать сообщение отдельно

Старожил


Сообщения: 163
Благодарности: 0

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
 
 * A* pA_1 = new A(); 
 * Base *pBase_1 = dynamic_cast<Base*>(pA_1); 
 * Base *pBase_2 = static_cast<Base*>(pA_1); 
//оба варианта работают, dynamic_cast работает, потому что 
//Base выше по иерархии 
 * Base* pBase_3 = new Base(); 
 * A* pA_2 = dynamic_cast<A*>(pBase_3); 
 * A* pA_3 = static_cast<A*>(pBase_3); 
//работает только static_cast, 
//считается небезопасным, потому что теперь можно 
//вызвать метод, которого нет в Base, а dynamic_cast сразу возмущается по этому поводу
зачем нужно
Код: Выделить весь код
 
Base* pBase = new A();
К сожалению не догадался

-------
"Сколь бы сложной ни казалась проблема на первый взгляд, она, если правильно к ней подойти, окажется еще более сложной" - Пол Андерсон


Отправлено: 01:04, 17-09-2004 | #4

Название темы: Обьясните разницу