Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/21: Рейтинг темы: голосов - 21, средняя оценка - 4.62
1 / 1 / 0
Регистрация: 09.07.2014
Сообщений: 167
1

Как реализовать флаги в параметрах функции

29.07.2014, 00:53. Показов 4188. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Объясните пожалуйста как реализовать флаги в параметрах функции.
К примеру:

есть такие флаги left middle right

C++
1
drowPoints (тут параметры флаги);
Вот так я эти флаги прописываю

C++
1
drowPoints (left | right);
А потом как-то мне надо понять, что прописано, а что нет.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
29.07.2014, 00:53
Ответы с готовыми решениями:

Реализовать функцию определения слова с минимальной длиной из заданного набора слов, переданного в параметрах функции
Необходимо разработать программу согласно варианту задания. Данные в программу передаются через...

Как реализовать вывод массива при заданных параметрах?
Например: х=2, у=3 00 000 01 001 10 010 11 ...

Как передать вектор в параметрах функции класса?
есть функция bool ReadDir(const std::wstring &, const std::wstring& , int, bool,bool ,...

Битовая арифметика в параметрах функции. Как это работает?
Разбираюсь с библиотекой SDL http://ru.wikipedia.org/wiki/Simple_DirectMedia_Layer Там есть такая...

7
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
29.07.2014, 02:34 2
А теперь объясните, какое извращение вы реализуете - а мы подскажем как надо.
1
 Аватар для CyberSolver
102 / 75 / 17
Регистрация: 23.07.2014
Сообщений: 877
Записей в блоге: 1
29.07.2014, 06:48 3
Как я понял, вы хотите написать что-то вида
C++
1
2
3
4
5
#define LEFT_FLAG 1
#define MIDDLE_FLAG 2
#define RIGHT_FLAG 4
 
void drowPoints(int flags);
Ну или более C++-way:
C++
1
2
3
enum Flag {LEFT = 1, MIDDLE = 2, RIGHT = 4};
 
void drowPoints(Flag flags);
1
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
29.07.2014, 10:08 4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#define LEFT 1
#define MIDDLE 2
#define RIGHT 4
void drawPoints(int flags {
    if (flags & LEFT) {
        // LEFT flag
    }
    if (flags & RIGHT) {
        // RIGHT flag
    }
    if (flags & MIDDLE) {
        // LEFT flag
    }
})
1
1 / 1 / 0
Регистрация: 09.07.2014
Сообщений: 167
29.07.2014, 11:46  [ТС] 5
Цитата Сообщение от rikimaru2013 Посмотреть сообщение
А теперь объясните, какое извращение вы реализуете - а мы подскажем как надо.
Просто видел функции, в которых это реализовано.
Ну к примеру в Qt:
C++ (Qt)
1
file.open(QIODevice::ReadOnly | QIODevice::Text);
Тут перечисляются 2 флага
0
654 / 575 / 164
Регистрация: 13.12.2012
Сообщений: 2,124
29.07.2014, 11:52 6
Цитата Сообщение от Igor Fender Посмотреть сообщение
Тут перечисляются 2 флага
они не перечисляются они логически суммируются
например
C++
1
2
3
QIODevice::ReadOnly = 0000 0001
QIODevice::Text = 0000 0100
QIODevice::ReadOnly | QIODevice::Text = 0000 0101
а потом флаг парсится(внутри ф-ции open )
обчно примерно так
C++
1
2
3
4
if(flag & QIODevice::ReadOnly)//проверка выставлен ли флаг
{
//какие то действия
}
1
1 / 1 / 0
Регистрация: 09.07.2014
Сообщений: 167
29.07.2014, 11:55  [ТС] 7
Я не могу понять откуда переменная flag :

C++
1
2
3
4
if(flag & QIODevice::ReadOnly)//проверка выставлен ли флаг
{
//какие то действия
}
0
654 / 575 / 164
Регистрация: 13.12.2012
Сообщений: 2,124
29.07.2014, 11:59 8
Лучший ответ Сообщение было отмечено Igor Fender как решение

Решение

таки прототип
C++
1
ostream::open(char* name, int flag)
например(это не точно, это для примера)

Добавлено через 51 секунду
Вы в Qt найдате объявление или реализацию метода open и поймете

Добавлено через 2 минуты
вот из std либы
C++
1
2
3
_Myt *open(const char *_Filename,
        ios_base::openmode _Mode,//вот флаг, ну вот тут mode называется - одно и то же
        int _Prot = (int)ios_base::_Openprot)
1
29.07.2014, 11:59
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.07.2014, 11:59
Помогаю со студенческими работами здесь

как правильно передать значение функции в последующие процедуры во входных параметрах.
у меня есть код программы в которой нужно упорядочить строки матрицы построчно по возрастанию.я...

Calc и C#: реализовать отступы в параметрах страницы
Никак не могу, реализовать отступы в параметрах страницы Calc-a... Нашел все это дело на...

Установить флаги OF, DF, ZF и CF. Остальные флаги сбросить
Прошу помочь со следующим заданием: Установить флаги OF, DF, ZF и CF. Остальные флаги сбросить....

bool в параметрах функции
можно ли использовать тип bool в параметрах функции? void draw(char ch, int width, bool vline,...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Проектирование и моделирование
hw_wired 28.01.2025
Введение в моделирование Моделирование представляет собой один из фундаментальных методов научного познания, который позволяет изучать объекты и явления через создание их упрощенных аналогов. В. . .
Алгоритмы и исполнители
hw_wired 28.01.2025
Введение в алгоритмы В современном мире информационных технологий алгоритмы играют основополагающую роль в решении различных задач и автоматизации процессов. Алгоритм представляет собой точную. . .
Хранение информации
hw_wired 28.01.2025
Введение: Роль систем хранения информации в современном мире В современную эпоху цифровых технологий эффективное хранение информации становится одним из ключевых факторов успешного развития любой. . .
Обработка числовой информации
hw_wired 28.01.2025
Введение в обработку числовой информации В современном мире обработка числовой информации стала неотъемлемой частью как профессиональной деятельности, так и повседневной жизни. Электронные таблицы. . .
Мультимедиа
hw_wired 28.01.2025
Введение в мультимедийные технологии В современном мире мультимедийные технологии стали неотъемлемой частью нашей жизни, проникнув во все сферы человеческой деятельности. Термин "мультимедиа". . .
Обработка текстовой информации
hw_wired 28.01.2025
Введение в обработку текстовой информации В современном мире обработка текстовой информации играет фундаментальную роль в различных сферах человеческой деятельности. Текстовые редакторы стали. . .
Обработка графической информации
hw_wired 28.01.2025
Введение в компьютерную графику Компьютерная графика стала неотъемлемой частью современного цифрового мира, пройдя впечатляющий путь развития от простейших черно-белых изображений до сложных. . .
Python в Алгоритмике: Решение задач
hw_wired 28.01.2025
Введение в Python и Алгоритмику В современном мире программирование стало неотъемлемой частью образования и профессионального развития. Python зарекомендовал себя как один из самых популярных и. . .
Компьютер как универсальное устройство для работы с информацией
hw_wired 28.01.2025
Введение в устройство компьютера Компьютер представляет собой универсальное электронное устройство, предназначенное для автоматической обработки информации. В современном мире компьютер стал. . .
Информация и информационные процессы
hw_wired 28.01.2025
Понятие информации и ее виды В современном мире информация является одним из фундаментальных понятий, пронизывающих все сферы человеческой деятельности. Под информацией понимают любые сведения об. . .
Алгоритмика
hw_wired 28.01.2025
Введение: Основы алгоритмики и её роль в информатике В современном мире программирование и алгоритмическое мышление стали неотъемлемой частью образования и профессиональной деятельности. . . .
Информационное моделирование
hw_wired 28.01.2025
Введение в информационное моделирование В современном мире информационное моделирование стало неотъемлемой частью научной, образовательной и профессиональной деятельности. Это мощный инструмент. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru