𝐑𝐨𝐨𝐭𝐓𝐨𝐨𝐥 𝐁𝐥𝐨𝐠
Фотография
нажмите — покажем
нажмите — покажем
Вот насколько надо просто чувствовать С++
Решил значит отладить цикл, добавил после строки GWires.Emplace(...) вызов остановки отладчика __debugbreak(), чтобы посмотреть на локальные переменные
Открываю - А у меня просто нет этих переменных!
И первые мысли: Проблема в отладчике? Нет. Проблема в IDE? Нет. В чем-то еще? А может... Деструкторы, бл!
Кароче: С++ скрытно под собой, после создания обьектов кабеля (Cable) и провода (Wire) вызывает их конструкторы (FCable::FCable() и FWire::FWire())
Мы работаем с этими обьектами
Но уже после - наоборот. Сразу вызывает их деструкторы (FCable::~FCable() и FWire::~FWire())
И затем я вызывается отладчик, когда обьекты уже как бы удалены
Решение? Ну, я ничего лучшего не придумал, кроме как после вызова отладчика вызвать консоль и написать что-то наподобие printf("123") и все :)
Зачем? Чтобы отложить вызов деструкторов ПОСЛЕ моего вызова отладчика
71 ·