Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
|
AD |
28.4.2008, 17:28
Сообщение
#11
|
|
Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17
|
Цитата(Tonal @ 28.4.2008, 11:25) Link По приведённому тобой коду нельзя сказать где ошибка. Несколько уточняющих вопросов: 1) Во втором куске кода, где и как определено имя clr? 2) Покажи конструктор, QFactParam который там вызывается. 3) Второй и 3ий кусок кода как распологаются друг относительно друга (в одном блоке, в одной процедуре, в одном классе...)? Предположение, основанное на телепатии - в QFactParam ты запоминаешь адрес локального объекта, который разрушается при выходе из блока, а используешь этот адрес совсем в другой функции. 1) 2) 3) 2-ой и 3-ий куски кода в 1 посте располагаются в разных файлах, вектор QFactParams виден глобально! |
|
|
|
|
Tonal |
29.4.2008, 7:31
Сообщение
#12
|
![]() Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 452 Регистрация: 6.12.2007 Из: Новосибирск Пользователь №: 34 Спасибо сказали: 69 раз(а) Репутация: 17
|
Не хватает определения param_color.
Оно выглядит так? Но всё таки, мне кажется, что мая телепатия меня не подвела. Ты запоминаешь в векторе fact_prm указатель на локальную переменную. Догадайся, куда он будет указывать при выходе из функции? Исправить - просто. Вместо указателя на QColor везде используй само значение. В параметрах конструктора вместо QColor* пиши const QColor& и будет тебе щастье. Сообщение отредактировал Tonal - 29.4.2008, 7:32 |
|
|
|
|
AD |
29.4.2008, 8:49
Сообщение
#13
|
|
Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17
|
Цитата(Tonal @ 29.4.2008, 8:31) Link Не хватает определения param_color. Оно выглядит так? Но всё таки, мне кажется, что мая телепатия меня не подвела. Ты запоминаешь в векторе fact_prm указатель на локальную переменную. Догадайся, куда он будет указывать при выходе из функции? Исправить - просто. Вместо указателя на QColor везде используй само значение. В параметрах конструктора вместо QColor* пиши const QColor& и будет тебе щастье. Вах-вах! Какая глупая ошибка. Спасибо! Действительно помогло - убрать указатель! |
|
|
|
![]() ![]() ![]() |
|
Текстовая версия | Сейчас: 1.1.2026, 5:34 |