0 / 0 / 0
Регистрация: 07.07.2013
Сообщений: 14
|
|||||||||||
1 | |||||||||||
Несколько mutable bool в классе16.09.2013, 23:53. Показов 1387. Ответов 10
Метки нет (Все метки)
Приветствую.
Столкнулся с необъяснимой для меня проблемой. Суть: Есть класс, пусть будет:
Флаг - по сути, это правило отображения. Один флаг - один тип фильтра, если элемент класса попадает под любой из фильтров, то он не отображается. По дефолту флаги = true, чтоб "применить" фильтр флаг ставится false( на форме снимается галочка у чекбокса ). test::disabled() почему-то постоянно возвращает false независимо от значения флагов. Доходило даже до того, что я писал так:
Как такое может быть? Сам ума не приложу. Подскажите, пожалуйста. Добавлено через 9 минут Чуть не забыл. Если флаг один, то всё работает как надо.
0
|
16.09.2013, 23:53 | |
Ответы с готовыми решениями:
10
Как можно диалоговую функцию BOOL __stdcall DialogProc сделать в классе ? Функция twoTrue :: Bool -> Bool -> Bool -> Bool Объединить несколько Expression<Func<T, bool>> не работает bool xor(bool a, bool b) |
134 / 106 / 10
Регистрация: 22.05.2010
Сообщений: 533
|
|
17.09.2013, 02:23 | 2 |
Не по теме: - Когда будет конец света? Не знаю, что у Вас, но у меня всё в порядке.
0
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
|
17.09.2013, 13:58 | 3 |
а если
то всё равно false? Удивительно.
Приведите минимально рабочий пример с ошибкой - посмотрим. А про mutable Вы видимо что-то не так поняли. Спецификатор mutable позволяет меня значение поля, даже если объект, содержащий это поле, константный. Для флагов логичнее использовать какой-нибудь std::bitset например.
0
|
0 / 0 / 0
Регистрация: 07.07.2013
Сообщений: 14
|
|
17.09.2013, 16:11 [ТС] | 4 |
Сейчас покопаюсь в проекте и отпишу.
Код было лень тут пробелами форматировать Использую mutable, т.к. объекты класса в списке не std'шном, а в QList'е, библиотека Qt. Он все свои элементы списка делает const, поэтому без mutable я не могу изменить что-либо из другого класса.(
0
|
0 / 0 / 0
Регистрация: 07.07.2013
Сообщений: 14
|
|||||||||||||||||||||
17.09.2013, 17:11 [ТС] | 6 | ||||||||||||||||||||
Не использовал итератор вообще.
В основном классе объявляется
Есть ещё третий класс, у которого точно так же имеется указатель на список объектов. Смотрю оттуда - все флаги true. К сожалению, выложить проект не могу весь, т.к. на самом деле он большой.
0
|
0 / 0 / 0
Регистрация: 07.07.2013
Сообщений: 14
|
|
17.09.2013, 18:48 [ТС] | 8 |
Ага, понял.
Сначала ничего не заработало как хотел. Сделал цикл, где проверялось disabled() ли элемент списка тоже итератором. Всё заработало, но. решил проверить как там и что. И завис. Как это вообще возможно? глюк вижуалки? Привет из прошлого? У меня раньше был один флаг в классе, но при этом всё работает корректно, как если было бы три флага, да и в коде их тоже три. Картинка во вложениях.
0
|
0 / 0 / 0
Регистрация: 07.07.2013
Сообщений: 14
|
|
17.09.2013, 22:39 [ТС] | 10 |
Я так и смотрю, я дальше просто f10 пронажимал, он получил в disabled() true и пошёл на следующую итерацию.
Я не о том. Внизу, в структуре объекта присутствует переменная flag, причем одна, которую я заменил треям давно, что видно в правой части картинки.
0
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
|
17.09.2013, 22:43 | 11 |
Попробуйте сделать очистку проекта с полной пересборкой. А потом посмотрите еще раз.
0
|
17.09.2013, 22:43 | |
Помогаю со студенческими работами здесь
11
Несколько структур в классе Ошибка приведения типов: E2357 Reference initialized with 'bool', needs lvalue of type 'bool' Несколько асинхронных функций в классе Изменить значение bool a = true в bool a = false Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |