Форум программистов, компьютерный форум, киберфорум
Наши страницы

Несколько mutable bool в классе - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Найти сумму наименьших элементов каждой строки матрицы и их координаты http://www.cyberforum.ru/cpp-beginners/thread956003.html
Здравствуйте! в Возможно такая темы была уже, но я так и не нашел( В общем задача такая: Задана квадратная матрица A размером N x N (N<=10), состоящая из действительных элементов. Найти сумму...
C++ Освобождение памяти Собственно есть простенький класс class Human { public: Human ( ); void ptintHuman(); private: static long offset; http://www.cyberforum.ru/cpp-beginners/thread955992.html
C++ Вывести в алфавитном порядке список товаров, которые лежат на складе больше некоего количества дней и цена которых больше некой отметки
Список товаров, которые лежат на складе, включает в себя наименование товара, кол-во единиц товара, цена единицы и дату прибытия товара на склад. Вывести в алфавитном порядке список товаров, которые...
Кодирование файла exe C++
Подскажите пожалуйста, почему в кодировке файле exe наиболие часто встречаются символы NULL, DEL?
C++ Сравнение данных структуры с данными, введенными с клавиатуры http://www.cyberforum.ru/cpp-beginners/thread955953.html
Есть такая структура: struct spisok { char departure; }; //далее будет использоваться spisok sp В sp.departure записано: 15:00 Это время, формат char. Переменной L присваивается значение "1",...
C++ Вектор, добавления элементов Как сделать чтобы вводить с клавиатуры цифры, и они помещались в готовый вектор примеру vector s1<int>. подробнее

Показать сообщение отдельно
arsgram
0 / 0 / 0
Регистрация: 07.07.2013
Сообщений: 14

Несколько mutable bool в классе - C++

16.09.2013, 23:53. Просмотров 695. Ответов 10
Метки (Все метки)

Приветствую.
Столкнулся с необъяснимой для меня проблемой.
Суть:

Есть класс, пусть будет:
C++
1
2
3
4
5
6
7
8
9
10
11
class test {
mutable bool flag1, flag2, flag3, flag4;
public:
void setflag1(bool flag){ flag1 = flag; }
void setflag2(bool flag){ flag2 = flag; }
void setflag3(bool flag){ flag3 = flag; }
void setflag4(bool flag){ flag4 = flag; }
 
bool enabled(){ return (flag1 && flag2 && flag3 && flag4); }
bool disabled(){ return (!flag1 || !flag2 || !flag3 || !flag4); }
}
Почему mutable - т.к. в других классах есть указатель на список из этого класса, чтоб менять значение флагов.
Флаг - по сути, это правило отображения. Один флаг - один тип фильтра, если элемент класса попадает под любой из фильтров, то он не отображается. По дефолту флаги = true, чтоб "применить" фильтр флаг ставится false( на форме снимается галочка у чекбокса ).

test::disabled() почему-то постоянно возвращает false независимо от значения флагов.
Доходило даже до того, что я писал так:
C++
1
bool disabled(){ return true; }
И из другого класса он всё равно возвращал false! Причём в вижуал студии по брейкпоинту из того класса я смотрел на флаги в элементах и они выставлялись корректно.

Как такое может быть? Сам ума не приложу. Подскажите, пожалуйста.

Добавлено через 9 минут
Чуть не забыл.
Если флаг один, то всё работает как надо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru