С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C++ Дирректории и перемещение по ним https://www.cyberforum.ru/ cpp-beginners/ thread2952231.html
Нужно написать код, который выводит в консоль вначале диск D и внутренние папки и дальше по ним нужно перемещаться с помощью стрелочек и enter и иметь воозможность открывать файлы.Вообще не имею понятия как это делать. Нельзя использовать классы и готовые функции.
C++ Составить программу для ввода набора произвольных чисел, символов и строк и выдачи их на экран
Составить программу для ввода набора произвольных чисел, символов и строк и выдачи их на экран в одной из форм выбранной из таблицы. В формах обозначены: - 999, 777, FFF - целые числа в 10, 8 или 16 с/с соответственно, с указанным минимальным количеством цифр. - 999.999, 999E99 и т.п - вещественные числа в соответствующем формате. - S - одиночный символ. - AAAAA - строка символов указанной...
C++ Правильное разделение пространств имён на файлы Здравствуйте! Подскажите пожалуйста, есть ли какие-то общепринятые правила разбиения на файлы классов и глобальных функций, созданных своём пространстве имен? Конкретно, к моей ситуации: Есть пространство имён mynamespace, в нём написан класс MyClass и глобальная функция MyFunc, которая возвращает переменную (объект) типа MyClass . Самым простым решением этого вопроса я вижу создать... https://www.cyberforum.ru/ cpp-beginners/ thread2952224.html C++ При наборе элемента строчного массива, должен выводиться следующий за ним элемент https://www.cyberforum.ru/ cpp-beginners/ thread2952219.html
При наборе элемента строчного массива, должен выводиться следующий за ним(по порядковому номеру) элемент.
Разработать программу с использованием наследования классов, реализующую классы: точка; линия; круг C++
Разработать программу с использованием наследования классов, реализующую классы: точка; линия; круг. Используя виртуальные функции, не зная с объектом какого класса вы работаете, выведите на экран координаты и размер.
C++ Как инициализировать константную переменную в классе? Есть класс. class ASS{public: const char wer; ASS(); ~ASS(){}; }ASS_; Внутри него есть переменная wer. Мне нужно инициализировать её значением из другой переменной. Далее я хочу вызвать деструктор чтобы создать объект заново и переинициализировать переменную wer, получиться ли такое сделать на стэке? Пробую обратиться к переменной wer в том виде в котором она есть получаю https://www.cyberforum.ru/ cpp-beginners/ thread2952202.html
C++ std не содержит back_inserter Здравствуйте. Я обычно не пишу на плюсах, но тут потребовалось внести коррективы в проект 15 летней давности, который был создан ещё в 2005ой VS. Проект открылся, пришлось ему руками указывать некоторые директории, но вроде всё норм, кроме такого момента: есть строка std::back_inserter(*что-то там*) и ошибка на ней: Error: namespace "std" has no member "back_inserter" Ггул мне сообщает, что... https://www.cyberforum.ru/ cpp-beginners/ thread2952190.html Удаление элементов динамического массива C++
Доброго времени суток! При разработке класса столкнулся с проблемой - "не работает" delete для динамического массива. Перечитал кучу тем на форуме, вроде все делаю правильно. Исходный код: template<class T> class cSet { unsigned int size; T *base; public: cSet(int Number = 0) { //конструктор инициализации base = new T;
C++ Определить как расположена точка относительно треугольника https://www.cyberforum.ru/ cpp-beginners/ thread2952167.html
Задан треугольник своими вершинами (x1,y1) , (x2,y2) , (x3,y3) и точка (x0,y0). Определить как расположены они друг относительно друга: точка внутри треугольника, точка на сторонах треугольника, точка вне треугольника. Находил уже тему с этой задачей но так и не разобрался с условием когда точка находится на сторонах треугольника. #include <iostream> #include <cmath> using namespace std;...
C++ Многопоточность в одну функцию https://www.cyberforum.ru/ cpp-beginners/ thread2952163.html
Добрый день! Есть вопрос, как избавиться от нескольких функций, сделав всё в одной и сохранить мнопоточность? Программа считает нули, отрицательные и положительные числа. Код: #include <iostream> #include <conio.h> #include <cstdlib> #include <ctime> #include <thread> #include <chrono>
C++ Составьте программу определения корней квадратного уравнения
Составьте программу определения корней квадратного уравнения, имеющего решения
C++ Определить количество положительных элементов в столбцах матрицы текст задания: Написать программу, которая по заданным пользователем размерам создаёт двумерный динамический массив. После заполнения элементов двумерного массива необходимо создать, заполнить и вывести на экран одномерный динамический массив, элементами которого являются количество положительных элементов в столбцах двумерного массива. В промежуточных вычислениях переменная для хранения... https://www.cyberforum.ru/ cpp-beginners/ thread2952110.html <
6 / 5 / 1
Регистрация: 05.10.2020
Сообщений: 122
28.02.2022, 17:23  [ТС] 0

Как избежать дублирования кода при написании константного и не константного метода? - C++ - Ответ 16098908

28.02.2022, 17:23. Показов 2427. Ответов 36
Метки (Все метки)

Ответ

John Prick, я на это и рассчитывал. Например, я захочу обойти буффер в заданных границах, но не хочу изменять его состояние. Для этого бы, желательно, вызвать const версию forBounds. При вызове этого метода я не смогу изменить лямбдой состояния буффера - будет ошибка компиляции. Для случая, когда объект не const, мне нужен метод forBounds, который смог бы принять лямбу, которая сможет изменить состояние буффера. При дублировании кода все работает замечательно, но мне таааак не хочется этого делать... А макрос на целый метод уродство ужасное. Может, есть способ сбросить const спецификатор у метода? В гугле все предлагают кастовать this, но это не подходит.

Добавлено через 1 минуту
Цитата Сообщение от John Prick Посмотреть сообщение
А зачем вам в лямбде всё окружение передавать [&], когда используется только bounds.getWidth()? Передайте это число либо параметром, либо [w = bounds.getWidth()]. Сложно же разбираться в таких связях будет.
для примера быстро накидал, даже не задумывался.

Вернуться к обсуждению:
Как избежать дублирования кода при написании константного и не константного метода? C++
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.02.2022, 17:23
Готовые ответы и решения:

Возврат константного значение из функции/метода
Здравствуйте подскажите пожалуйста как из функции или метода вернуть константное значение? что бы...

Выполнение метода в зависимости от константного свойства
class Z { private: const int num; public: Z(int val): num(val){} template&lt;int...

Как избежать дублирования кода при использовании virtual функций?
Здравствуйте. Есть Класс Студент_А и Студент_Б. В каждом есть поле private содержащее string name....

Избежать дублирования проверок при выполнении метода
Предположим, у банка есть метод который осуществляет перевод денег со счета на счет. В нем есть...

36
28.02.2022, 17:23
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.02.2022, 17:23
Помогаю со студенческими работами здесь

Как избежать дублирования кода?
Приветствую Вас уважаемые форумчане! Хочу обратиться к Вам за помощью. Возникли огромные пробелы...

Как избежать дублирования кода в Си
Допустим, есть такие структуры данных: enum Color{ Red, Blue, Black, White };...

Как избежать дублирования кода? Наследование
Здравствуйте. У меня следующая проблема: Есть несколько классов: A, B, C. Они наследуются от...

Ошибка при выводе константного значения С++
Всем привет! Столкнулся с проблемкой, выводит вот такую ошибку. Ошибка C2679 бинарный &quot;&lt;&lt;&quot;: не...

Ошибка при обращении к методу константного объекта
Есть некий класс, в нем есть метод const size_t Length(); пишу оператор сложения Class&amp; operator...

Усечение константного значения при присвоении значений объектам структуры
Здравствуйте! Есть вот такой код: #include &lt;iostream&gt; using namespace std; struct date {...

Избежать дублирования кода
Доброго времени суток, имеется метод записи данных. Записываю из Dictionary, проблема в том, что...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru