170 похожих чатов

Так, теперь я окончательно запутался. Модификатор доступа private для атрибутов

нужен для того, чтобы значения и/или типы этих самых атрибутов не изменялись из вне?

16 ответов

4 просмотра

Ну да

Что сложного тут вообще? Уже сколько обсуждение может...

Азамат- Автор вопроса
Ilya Zviagin
Ну да

А сеттеры позволяют изменить значения этих самых атрибутов?

Атрибуты - название самостоятельной языковой конструкции (https://en.cppreference.com/w/cpp/language/attributes), Вы же говорите о членах классов. Еще: типы изменяться не могут вообще (в крестах статическая типизация).

Азамат
А сеттеры позволяют изменить значения этих самых а...

Ну да, и при этом контролировать эти изменения

Азамат
А сеттеры позволяют изменить значения этих самых а...

Причем, в С++ как в языке никаких сеттеров геттеров нет, это просто одна из идиом ООП

Азамат- Автор вопроса
Ilya Zviagin
Ну да, и при этом контролировать эти изменения

Каким образом? Типо, если есть атрибут класса типа int, в который, по задумке программиста, нельзя вписывать отрицательные числа, то в сеттерах записывается логика, которая проверяет числа, которые пользователь хочет присвоит атрибуту объекта этого класса, на не отрицательность?

Азамат
Каким образом? Типо, если есть атрибут класса типа...

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

Азамат
Каким образом? Типо, если есть атрибут класса типа...

все верно, только это член данных класса, раз уж мы С++ учим

Азамат- Автор вопроса
Азамат
Каким образом? Типо, если есть атрибут класса типа...

Ну вот хранишь ты чётные числа, тебе присылают через сеттер нечётное, ты можешь это проверить и ничего не сохранять, а , скажем, инициировать ошибку (исключение например)

Азамат
Ну, блин, данные в классе или как их там.

общий код - это понятия, которые используются в речи, если ты используешь одно, другие другое, то возникает недопонимание.

Азамат- Автор вопроса
Азамат
Каким образом? Типо, если есть атрибут класса типа...

А с чего вообще возникли такие проблемы с пониманием этого?

Похожие вопросы

Обсуждают сегодня

Сообщение* в закодированном виде. То есть, просто сделать sendMessage?text=Привет бла-бла! не получится, надо в HEX переводить, и добавлять процент, типа такого: sendMessage?t...
КТ315
21
А случайно нет ли в паскале штатной возможности передать указатель и количество туда где array of в качестве аргумента?
zamtmn
25
Хм. А телеграм апи работают через HTTP?
The Bird of Hermes
14
Почему Telegram пишет, что объект media не найден, хотя на самом деле я его передаю? Делаю на urllib, без зависимостей, так надо. Вызываю метод sendMediaGroup с таким JSON: ...
Alexey S
1
Anyone here suffers from unexplained aural migraines, who would be up for talking for a bit? Doesn't *have* to be aural, but I am not asking about headaches, I mean actual mi...
Martin Rys
58
Ну раз я пока тут, задам пару глупых вопросов. Зачем писать на ассемблере если компилятор довольно умный, а ассемблер много времени занимает? В каких прикладных задачах сейчас...
Максим Рябцев
20
Я тут за тем, чтобы задать вопрос, так как не знаю ассемблер, учу с/с++. Короче, насколько дорога операция перехода в функцию при ее вызове? Дело в том, что в с++ есть макросы...
Максим Рябцев
12
Привет, нужен совет старших товарищей. Есть глобальная переменная var DefaultDataFolder:string; инициализируем DefaultDataFolder:='a:\_OUT\'; есть примитивная процедур...
Max Otto
14
А какие чаты вообще в ходу? Auto aim? И что еше
do you think you're better off alone? А
13
hello friends. Do you know how can I learn getx? I have a software project that I should deliver it up to 5 weeks later and I need to learn firebase too. I will be thankfull
AmirHossein Razavi
15
Карта сайта