![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
всем доброго дня.
в следующем коде, хотелось бы понять, откуда компилятор знает что то, на что указывает void* - класс?
http://liveworkspace.org/?id=0a13c91492244...1cd1b5e6e8fc5f7 т.е. то что освобождается память - понятно. не понятно именно то, откуда компилятор знает что это указатель на класс, чтоб вызвать еще и его деструктор? или это все проделки RTTI ? и вообще, безопасен ли такой код? спасибо Добавлено через 4 минуты и 15 секунд зы две минуты лежит пост, и уже минус. и никакого комментария. всегда хотел понять, чем руководствуется особь, минусующая сам_топик |
|||
|
||||
| azesmcar |
|
||||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
ты сам передал его тип вместе с указателем. нет. да. |
||||
|
|||||
| boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
да. но вектор хранит смарт-поинтеры на void. и деструкторы вызываются при разрушении вектора. а значит, деструкторы вызывают смарт-поинтеры на void. Это сообщение отредактировал(а) boostcoder - 22.4.2011, 11:26 |
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
||||
|
||||
| boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
не понял.. вектор хранит boost::shared_ptr<void> в push_back я тоже передаю boost::shared_ptr<void> откуда он знает тип? не въезжаю... |
|||
|
||||
| azesmcar |
|
||||||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
представь
T - void, но Y у тебя - type1. Соответственно он может создать deleter с соответствующим типом. Добавлено через 1 минуту и 5 секунд
нет, в push_back ты передаешь
а значит передаваемому объекту известен тип. |
||||||
|
|||||||
| boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
аааа..
я не обратил внимания что тут другой тип параметра:
все. понял. спасибо. вопрос закрыт. |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |