Re[2]: Операторы преобразования в std::auto_ptr
От: mp_op  
Дата: 06.08.11 11:51
Оценка:
Здравствуйте, abrarov, Вы писали:

A>Не понятно, что означает "не работает" (MSVC 10.0 — собирается и даже без warning-ов)?

Не работает, значит не компилируется.

A>Что сразу заметно: std::auto_ptr<A> должен удалять объект, на который он указывает, посредством вызова деструктора ~A(). Но так как этот деструктор невиртуальный, и реально p указывает на экземпляр B, то имеет место ошибка — при уничтожении p вместо вызова деструктора ~B() будет вызван ~A() (и только).

В теме по-моему написано о чем вопрос. Виртуальный деструктор тут оффтоп.

Вот пример с ошибкой.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.