![]() |
|
![]() ![]() ![]() |
|
Vasya |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 72 Регистрация: 5.7.2003 Репутация: нет Всего: нет |
Привет,
У меня есть класс :
и есть функция имеющая :
И вот что происходит, если до вызова метода print(Drv &d) d.members.count() равен 10, то в методе print() он либо равен 19520015, либо вылетаем с sigfault. Не могу понять, что происходит с членами класса, я ведь его передаю по ссылке или указателю(пробовал:)). Хотя в отладчике в методе print(Drv &d) виден класс с его members-ами, все в порядке, даже d.members.count() показывет верное число. Т е breakpiont стоит на qDEbug() << d.members.count(), в этот момент в отладчике видно, что members.count() == 10, но этот шаг приводит к краху. Спасибо! Это сообщение отредактировал(а) Vasya - 11.2.2016, 09:54 |
||||
|
|||||
Guinness |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 310 Регистрация: 21.6.2009 Где: Зеленоград Репутация: 2 Всего: 10 |
У меня всё работает. Выводит:
Приведите минимальный пример, где воспроизводится. |
||||
|
|||||
Vasya |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 72 Регистрация: 5.7.2003 Репутация: нет Всего: нет |
В том то и ж...а.... Я тоже попробовал так, без ничего , и все работало.
Реальный кусок кода:
а вот p.printService:
Как видим, ничего с *d не происходит, просто культурно просим распечатать количество элементов. Либо печатается безумное число, ли крах. Если не крах, то после выхода из printService снова печатается корректное число. Добавлено через 13 минут и 52 секунды На всякий случай, переменную d переименовал в drv. Qt все же)). Безрезультатно |
||||
|
|||||
Guinness |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 310 Регистрация: 21.6.2009 Где: Зеленоград Репутация: 2 Всего: 10 |
Ситуация забавная, единственное, что пока могу предложить сделать - это поставить отладочную печать в конструктор, копирующий конструктор, конструктор перемещения, деструктор.
Добавлено через 32 секунды класса OD_Drv |
|||
|
||||
ss |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 133 Регистрация: 17.5.2007 Репутация: нет Всего: нет |
попробуй clear, make, rebuild проекта сделать. Иногда бывает что сборка старая остается
Это сообщение отредактировал(а) ss - 11.2.2016, 23:17 |
|||
|
||||
Vasya |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 72 Регистрация: 5.7.2003 Репутация: нет Всего: нет |
)) уж сколько раз пробовал аналогичная ситуация, но в другом классе, прокатила, проблему решил переделыванием кода. Так и не понял, в чем прикол |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |