Название: Просветите новичка Отправлено: Ced от Май 06, 2017, 11:41 Код: C:\Qt\5.8\mingw53_32\include\QtCore\qlist.h:493: предупреждение: deleting object of polymorphic class type 'Method' which has non-virtual destructor might cause undefined behaviour [-Wdelete-non-virtual-dtor] Чего он ко мне привязался? Название: Re: Просветите новичка Отправлено: Ced от Май 06, 2017, 12:07 Цитировать https://habrahabr.ru/post/64280/ Тут прочитал, в чем проблема. Но там не сказано, как правильно. Название: Re: Просветите новичка Отправлено: Igors от Май 06, 2017, 12:12 Сообщает что класс Method полиморфный (имеет хотя бы 1 virtual), но деструктор не virtual. Это чревато утечками и др неприятностями, сделайте его виртуальным
Код
Название: Re: Просветите новичка Отправлено: Ced от Май 06, 2017, 19:37 Сообщает что класс Method полиморфный (имеет хотя бы 1 virtual), но деструктор не virtual. Это чревато утечками и др неприятностями, сделайте его виртуальным Код
А содержимое деструктора писать надо, или достаточно объявить? Название: Re: Просветите новичка Отправлено: Ced от Май 06, 2017, 22:17 Сообщает что класс Method полиморфный (имеет хотя бы 1 virtual), но деструктор не virtual. Это чревато утечками и др неприятностями, сделайте его виртуальным Код
Спасибо. Вроде разобрался. Компилятор не ругается. Посмотрим, как заработает, когда запущу. Название: Re: Просветите новичка Отправлено: __Heaven__ от Май 06, 2017, 22:24 Компоновщик не справится без тела деструктора. Да и в таблицу виртуальных методов непонятно, что записывать напротив деструктора.
Можно попросить компилятор сгенерировать деструктор по умолчанию Код Или дать его определение (пустое тело). Название: Re: Просветите новичка Отправлено: Ced от Май 06, 2017, 22:49 Компоновщик не справится без тела деструктора. Да и в таблицу виртуальных методов непонятно, что записывать напротив деструктора. Можно попросить компилятор сгенерировать деструктор по умолчанию Код Или дать его определение (пустое тело). Написал деструктор явно. Посмотрю, как будет работать. Если не получится, попробую воспользоваться =defaut |