Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
Найти элемент массива наименее отличающийся от среднего арифметического C++
Элементы массива вводятся с клавиатуры пока не введено число 100000. Элементы массива могут принимать любые целые значентя. Напишете программу, которая находит и выводит номер элемента массива,... https://www.cyberforum.ru/cpp-beginners/thread995695.html Киеикикикикик, П.5.4. Правил Запрещено создавать темы с бессмысленными названиями вроде "Помогите!", "Вопрос" и т.п.
Определить является ли строка палиндромом C++
Почему не работает программа // проверка на палидром (строки) #include<iostream> #include<Windows.h> #include<clocale> #include<cstdlib> #include <string> using namespace std; int main(){ if(s != ' ') добавлю ещё, что нет никакого смысла разбивать строку по пробелам или что там... в этом цикле... cin>>s заполнит s строкой с консоли до первого пробела
Функция для создания потоков C++
template<typename T, typename... A> inline auto createAndStartThread(int core_id, const std::string &name, T &&func, A &&... args) noexcept { auto t = new std::thread(() { if (core_id... Здесь же явно есть проблема в том что лямбда захватывает по ссылке, и мы можем успеть выйти со скопа Он же там спит целую секунду - нормально все будет)
Написать программу для нахождения НОД двух многочленов C++
Здравствуйте! Нужно написать программу для нахождения НОД двух многочленов. Как это делается с числами-понятно. Но для многочленов не понимаю. В интернете тоже мало что нашла. Прошу помощи! а что из делителей считается наибольшим? делитель-многочлен с большей степенью? Тогда надо найти два массива корней для 2 многочленов Найти пересечение членов в массивах Перемножить многочлен из...
C++ Нужна блок схема для программы
#include <iostream> #include <string> int main() { setlocale(LC_ALL, "rus"); system("chcp 1251"); std::string inputText;
Переписать массив char в массив int C++
#include <iostream> #include <cstring> #include <string> using namespace std; int main() { char num = "345189"; int i = 0; int n_a; Показывай решение давай!
C++ Разработать класс "Книга" Нужна помощь - создать программу. Всё время выдается ошибка класса или подобное. Уже не знаю, как написать программу с использованием класса и доступа. Заранее благодарю за помощь! Класс... Всё время выдается ошибка класса Приведите код и список ошибок (текстом). Если такового на самом деле нет, то https://www.cyberforum.ru/cpp-beginners/thread1672206.html https://www.cyberforum.ru/ cpp-beginners/ thread3130724.html Посчитать метрики кода C++
a)Рассчитать метрики cloc (число строк комментария) и sloc (число строк кода) b)Рассчитать метрику Холстеда (словарь, длина, объем и сложность программы) c)Рассчитать ABC-метрику /*Вводится...
C++ Написать программу для вычисления значения функции помогите решить, это задание на языке c++ Q = bx - lg bx bx < 1 1 bx = 1 bx + lg bx bx > 1 Q=\left\{\begin{matrix}bx-\lg bx, & bx<1\\ 1, & bx=1\\ bx-\lg bx, &... #include <cmath> #include <iostream> using namespace std; int main() { double x; const double b = 1.5; cout << "x="; cin >> x; double bx=b*x; https://www.cyberforum.ru/ cpp-beginners/ thread3130595.html Как убрать пробел в ответе? C++
#include <iostream> #include <string> #include <vector> #include <algorithm> Как убрать пробел в ответе? int main() { std::string text; std::cout << ""; std::getline(std::cin,... Как убрать пробел в ответе? 42 строка: std::cout<< "\b \b" << std::endl;
C++ Выравнивание адреса https://www.cyberforum.ru/ cpp-beginners/ thread3130633.html
Нужно ли мне беспокоиться о выравнивании адреса в памяти при: struct my_struct { int value; }; auto ms{ static_cast< my_struct * >( std::malloc( 5 ) ) }; // malloc не выровнит адрес на 4... Нужно ли мне беспокоиться о выравнивании адреса Не нужно. The malloc() and calloc() functions return a pointer to the allocated memory that is suitably aligned for any kind of variable.
Найти пары одинаковых значений из двух последовательностей C++
Всем привет, помогите оптимизировать код задачи. Задача: У Никиты и Дианы день рождения в один день! Никите Ярик подарил последовательность целых чисел a1,a2,…,an - размера n , а Диане... #include <iostream> #include <vector> #include <algorithm> #include <unordered_map> #include <cstdint> using ui = uint64_t; int main() {
0 / 0 / 0
Регистрация: 09.01.2023
Сообщений: 33
27.09.2023, 12:12  [ТС] 0

Свойства в C++ - C++ - Ответ 17050472

27.09.2023, 12:12. Показов 589. Ответов 4
Метки (Все метки)

Ответ

Если нужны собственные геттеры и сетторы, правильно ли я делаю?
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
template<typename T> class ValueSetter{
    public:
        void operator()(const T& read, T& write){
            write = read;
        }
};
template<typename T> class ValueGetter{
    public:
        T& operator()(T& value){
            return value;
        }
        T const& operator()(const T& value) const{
            return value;
        }
};
template<typename T, typename S = ValueSetter<T>, typename G = ValueGetter<T>> class ValueHolder{
    protected:
        explicit ValueHolder(T const& value, const S& setter = S(), const G& getter = G())
        : m_value(value){
        }
        T& get(){
            return m_getter(m_value);
        }
        T const& get() const{
            return  m_getter(m_value);
        }
        ValueHolder& operator=(T const& value){
            m_setter(value, m_value);
            return *this;
        }
    private:
        T m_value;
        S m_setter;
        G m_getter;
};
template <typename T, typename S, typename G> using AccessorBase = std::conditional_t<std::is_class_v<T>, T, ValueHolder<T, S, G>>;
template<typename T, typename S = ValueSetter<T>, typename G = ValueGetter<T>> class Accessor: public AccessorBase<T, S, G>{
    public:
        Accessor(const T& value = T())
        : AccessorBase<T, S, G>(value){
        }
        using AccessorBase<T, S, G>::operator=;
        operator T() const{
            return this->get();
        }
        operator T&(){
            return this->get();
        }
};
Код проверил и он работает:
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
33
34
35
class A{
    private:
        // Собственный сеттер
        template<typename T> class WidthSetter{
            public:
                void operator()(const T& read, T& write){
                    if(read > 0){
                        write = read;
                    }
                }
        };
    public:
        A()
        : width(1){
        }
        Accessor<int, WidthSetter<int>> width;
};
 
class B{
    public:
        B(){
        }
    Accessor<A> a;
 
};
 
 
int main(){
    B b;
    b.a.width = -10;
    std::cout << b.a.width << '\n'; // выдает 1, т.к. значение меньше нуля
    b.a.width = 6;
    std::cout << b.a.width << '\n';
    return 0;
}


Вернуться к обсуждению:
Свойства в C++ C++
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.09.2023, 12:12
Готовые ответы и решения:

Выполнить команду в set свойства для свойства SelectedItem (ComboBox ) MVVM
Хай Коротко: при каждом выборе элемента из ComboBox нужно выполнять команду, для которой в качестве параметра нужно передать экземпляр...

Что лучше, свойства с приватной переменной или автоматические свойства?
Известно, что в классах свойства можно определить так: class MyClass { private int val; public int Val ...

диаграмма Эйлера, Свойства отображения, свойства отношения и исследования алгебры
кто может помочь с не сложними заданиями по Дискретной математики, отпишите плс на скайп zewer_wow, там такие задание: диаграмма Эйлера,...

4
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.09.2023, 12:12
Помогаю со студенческими работами здесь

PropertyGrid. Как отловить видимость свойства в зависимости от другого свойства?
Работаю с propertyGrid. Одно поле высвечивается, когда в другом появляется определенное значение. Взяла за основу раздел «Как управлять...

Как отследить изменение конкретного свойства объекта, например в ChildVM свойства Title?
Тема создана разделением основной темы https://www.cyberforum.ru/wpf-silverlight/thread2868017.html Элд Хасп, как отследить изменение...

Получить наименование свойства объекта и значение этого свойства.
Добрый день. Помогите, не оставьте в неведение.:help: Есть функция, которая принимает в качестве параметра объект. Необходимо...

Реализовать зависимость свойства volume у mediaElement от свойства Value у slider
Добрый день! Как можно реализовать зависимость свойства volume у mediaElement от свойства Value у slider? Что бы при увеличении значения...

Можно ли объекту присвоить значение свойства от другого свойства?
Здравствуйте! Подскажите пожалуйста. var book = { title:&quot;Java Programming&quot;, author:&quot;John Smith&quot;, pubyear:2018, price: 1500, ...

0
Новые блоги и статьи
Организация масштабируемого хранилища с Apache Cassandra
Codd 14.03.2025
Изначально разработанная в Facebook, а затем переданная Apache Software Foundation, Cassandra сочетает в себе принципы Amazon's Dynamo и Google's BigTable. Эта комбинация создает уникальную. . .
Kafka или Pulsar: Что лучше для потоковой обработки в Java
Javaican 14.03.2025
Среди множества решений для потоковой обработки данных Apache Kafka долгое время удерживала лидирующие позиции, став де-факто стандартом в индустрии. Однако в последние годы всё больше внимания. . .
Создание и использование компонентов в Vue 3
Reangularity 14.03.2025
Компонент в Vue - это автономный блок интерфейса, который содержит собственную разметку, логику и стили. Представьте себе кнопку, форму ввода или даже целую панель навигации - всё это можно оформить. . .
Vue 3: Создаем современное веб-приложение с Composition API
Reangularity 14.03.2025
В фронтенд-разработке Vue 3 выделяется своим прагматичным подходом. В отличие от React с его минималистичной философией "всё — JavaScript" или Angular с его всеобъемлющим корпоративным подходом, Vue. . .
Разработка контекстных меню в iOS
mobDevWorks 14.03.2025
С приходом iOS 13 Apple представила новый API для контекстных меню, который полностью заменил предыдущую технологию 3D Touch peek & pop. Хотя многие разработчики и пользователи испытывают ностальгию. . .
Лучшие практики оптимизации Docker Image
Mr. Docker 13.03.2025
Размер Docker-образа влияет на множество аспектов работы с контейнерами. Чем больше образ, тем дольше его загрузка в реестр и выгрузка из него. Для команд разработки, работающих с CI/ CD пайплайнами,. . .
Вопросы на собеседовании по Docker
Mr. Docker 13.03.2025
Ты сидишь напротив технического специалиста, и вдруг звучит вопрос про Docker Swarm или многоэтапные сборки. Пот на лбу? Не переживай, после этой статьи ты будешь готов ко всему! Эта статья будет. . .
Поиск текста в сносках : замена дефиса на тире или тире на дефис...
РоΜа 13.03.2025
Нужно было найти текст в сносках и заменить. Почему-то метод селекшн не сработал. . . пришлось гуглить. найденный на форумвба код пришлось править. Смысл - заменяет в сносках дефисы и тире на нужные. . . .
Real PATH definitions in bash scripts
jigi33 13.03.2025
Как поймать путь и путь к директории относительно запускаемого файла в BASH 1. поймать путь через вывод $(pwd) 2. более правильно - на основе realpath (см. скриншот)
Django или Flask: что выбрать для веб-разработки на Python
py-thonny 13.03.2025
Django – это высокоуровневый фреймворк, который придерживается философии "всё включено". Он предоставляет разработчику готовые решения для большинства типичных задач веб-разработки: от аутентификации. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru