Форум программистов, компьютерный форум CyberForum.ru

Ошибка в bool функции - C++

Восстановить пароль Регистрация
 
Tiva
94 / 94 / 1
Регистрация: 25.04.2012
Сообщений: 429
19.11.2012, 15:11     Ошибка в bool функции #1
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#define ADD_OBJ 2
#define ADD_SUB 4
#define DEL_OBJ 8
#define DEL_SUB 16
#define ADD_RIGHT 32
#define DEL_RIGHT 64
#define READ 2
#define WRITE 4
#define EXECUTE 8
#define DELETE 16
 
bool Matrix::check(int right, int k) //к-ключ. если 0 то проверка прав матрицы, если 1 то проверка прав общая
{
    if(k==1)
    {
        if(right & READ) return true;
        else if(right & WRITE) return true;
        else if(right & EXECUTE) return true;
        else if(right & DELETE) return true;
        else return false;
    }
    if(k==0)
    {
        if(right & ADD_OBJ) return true;
        else if(right & ADD_SUB) return true;
        else if(right & DEL_OBJ) return true;
        else if(right & DEL_SUB) return true;
        else if(right & ADD_RIGHT) return true;
        else if(right & DEL_RIGHT) return true;
        else return false;
    }
}
вызываю метод
C++
1
2
if(a.check(124,0)) //do something
else cout<<"нет доступа\n"
почему возвращает всегда истину? должно возвратить ложь
124 это сумма всех прав кроме добавления объекта(первого) 4+8+16+32+64
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.11.2012, 15:11     Ошибка в bool функции
Посмотрите здесь:

bool в параметрах функции C++
не работает bool xor(bool a, bool b) C++
Ошибка инициализации bool*** C++
C++ как правильно понять тип bool ? bool true(const string &str) и что дает это значение ?
C++ тип bool ошибка обработки
C++ Возврат функции bool от long
C++ Изменить значение bool a = true в bool a = false
C++ Ошибка с типом данных bool

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
OhMyGodSoLong
~ Эврика! ~
 Аватар для OhMyGodSoLong
1234 / 983 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
19.11.2012, 15:14     Ошибка в bool функции #2
124 & 4 == 4
4 != 0
if в строке 26 срабатывает
Tiva
94 / 94 / 1
Регистрация: 25.04.2012
Сообщений: 429
19.11.2012, 15:28  [ТС]     Ошибка в bool функции #3
тогда как сделать функцию проверки по правам надо? подскажите?

Добавлено через 54 секунды
и еще, как только в такой функции встречается return она прекращает работу и возвращает значение или идет до конца построчно?

Добавлено через 7 минут
а все сделал, фигня вопрос спасибо
Yandex
Объявления
19.11.2012, 15:28     Ошибка в bool функции
Ответ Создать тему
Опции темы

Текущее время: 16:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru