С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
2 / 2 / 1
Регистрация: 21.03.2015
Сообщений: 72

Перегрузка побитовых логических операций

21.05.2017, 12:36. Показов 2825. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет! Хотел спросить, можно ли как нибудь перегрузить логическую операцию "И - &" так, чтобы в ней участвовало 2 аргумента?
Если же перегружать используя один аргумент, то конечно все работает.
C++
1
Array operator&(const Array& b) const;
Но при если написать вот так:
C++
1
Array operator&(const Array &v1, const Array &v2) const;
То выводит соответственно ошибку - > error: 'Array Array::operator&(const Array&, const Array&) const' must take either zero or one argument|
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
21.05.2017, 12:36
Ответы с готовыми решениями:

Пояснение побитовых операций
Прошу объяснить на пальцах/на примере что значит следующая строчка, каким именно образом осуществляется сдвиг вправо на 4 разряда? что...

Приоритет побитовых операций
Всем привет. Столкнулся с непоняшкой: // Объявляем два массива и инициализируем их unsigned char A={0xFF, 0x03, 0x00,...

Странное взаимовлияние побитовых операций
Запускаю в VS C++ 2012 int shift = 30; long long x = 1<<shift; long long y = ~0; //int x = 1<<shift; //int y = ~0; ...

3
Эксперт .NET
 Аватар для Rius
13072 / 7633 / 1669
Регистрация: 25.05.2015
Сообщений: 23,206
Записей в блоге: 14
21.05.2017, 13:34
zzzLoLzzz, предположим, каким-то чудом это удалось. А как вы это в коде будете использовать?)

a & = b можно записать.
Можно и a = b & c;.
А ваш вариант как будет выглядеть?
0
 Аватар для dailydose
671 / 217 / 88
Регистрация: 21.07.2016
Сообщений: 1,036
Записей в блоге: 2
21.05.2017, 13:54
Лучший ответ Сообщение было отмечено zzzLoLzzz как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
using namespace std;
 
class _Array
{
    friend _Array operator&(const _Array& b, const _Array& a);
 
};
 
_Array operator&(const _Array& b, const _Array& a)
{
    _Array t;
    return t;
}
 
int main() {
    
    _Array c,d;
    _Array g = c&d;
    
    std::cout << "Успешно    time: 0 memory: 15240 signal:0" << std::endl;
    return 0;
}
Добавлено через 2 минуты
Цитата Сообщение от zzzLoLzzz Посмотреть сообщение
Но при если написать вот так:
C++Выделить код
1
Array operator&(const Array &v1, const Array &v2) const;
То выводит соответственно ошибку - > error: 'Array Array::operator&(const Array&, const Array&) const' must take either zero or one argument|
потомучто нельзя применить 1 оператор к 3 аргументам
#post10397813
0
2 / 2 / 1
Регистрация: 21.03.2015
Сообщений: 72
21.05.2017, 14:09  [ТС]
Rius , Я пишу программу, которая работает с битовыми строками, создал два объекта класса и вот тут как раз и хотел, чтобы он у меня работал с двумя аргументами.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
21.05.2017, 14:09
Помогаю со студенческими работами здесь

Установка бита с использованием побитовых операций
Есть следующая программа, которой задается само число/символ (unsigned char), переводит программа в двоичный вид, и бит, который был задан...

Определение остатка от деления с помощью побитовых операций
Народ, недавно начал изучать С++ и наткнулся на один пример. Никак не могу додуматься как его решить. Надеюсь тут есть старшие товарищи...

Перевод Unsigned char в двоичный вид с использованием побитовых операций
Вводится с клавиатуры переменная типа unsigned char, с помощью побитовых операций переводится в двоичный вид и выводится на экран....

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

Перевод десятичного вещественного числа в двоичное путем побитовых операций (Делить на 2 нельзя)
Нужно написать код на С++, который переводит вещественное десятичное число в двоичное с помощью битовых операторов(Сдвиги, &amp;, | и т.п) ...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru