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

Class A { public: A(int x_, int y_)

: x(x_), y(y_) {}

void setX(int x_) { x = x_; }
void setY(int y_) { y = y_; }

int& getX() { return x; }
int& getY() { return y; }

private:
int x;
int y;
};

А такой класс нарушает инкапсуляцию ? Я в том смысле что он раскрывает детали реализации. Но вот вопрос одно ли это тоже ?
Т.е. раскрыть детали реализации == нарушить инкапсуляцию ?

36 ответов

18 просмотров

Каким образом он раскрывает детали реализации?

Да, по сути это одно и тоже

не раскрывает и не нарушает

int& getX() { return x; } --- зачем по ссылке то? Есть же set

Danya🔥
Раскрывает и нарушает

Ну это всё очень глубоко философский вопрос...

Ilya Zviagin
Ну это всё очень глубоко философский вопрос...

а какая здесь философия? открыл доступ к неконтролируемому изменению внутреннего состояния объекта - получи нарушение инкапсуляции

Смотря что понимать под инкапсуляцией С одной стороны - x и y всё ещё остаются внутри класса, они инкапсулированы

> Т.е. раскрыть детали реализации == нарушить инкапсуляцию ? Нет, не одно и то же

Danya🔥
Нет, они не инкапсулированны

Они будут инкапсулированы даже если их просто поместить в namespace

Kirill 🚜
Они будут инкапсулированы даже если их просто поме...

Ты не понимаешь что такое инкапсуляция кажется

Danya🔥
Ты не понимаешь что такое инкапсуляция кажется

У неё много определений, придерживаться какого-то одного и исключать другие - это неправильно

Ilya Zviagin
Так он может добавить контроль-то...

если он выставляет ссылку, он теряет контроль

Kirill 🚜
У неё много определений, придерживаться какого-то ...

У неё одно определение — сокрытие реализации Здесь реализация не скрывается

Короче подставь const перед int& и не будет проблем

Illia Palkin- Автор вопроса
Kirill Bolshakov
Короче подставь const перед int& и не будет пробле...

Выглядит не лучше обычной ссылки на инт

Illia Palkin
Выглядит не лучше обычной ссылки на инт

лучше - менять нельзя значение под ней

Illia Palkin- Автор вопроса
Kirill Bolshakov
лучше - менять нельзя значение под ней

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

Illia Palkin- Автор вопроса
Kirill Bolshakov
кого нарушишь?

https://en.wikipedia.org/wiki/Law_of_Demeter

Illia Palkin
https://en.wikipedia.org/wiki/Law_of_Demeter

И в чём нарушение, если передавать по const T& большой класс из геттера?

Illia Palkin- Автор вопроса
Kirill Bolshakov
И в чём нарушение, если передавать по const T& бол...

Там есть секция In object-oriented programming. Что непонятного ?

Illia Palkin
Там есть секция In object-oriented programming. Чт...

Как это к твоему геттеру относится? Возврат какого-нибудь std::string это возврат свойства просто

Illia Palkin- Автор вопроса
Illia Palkin
Там есть секция In object-oriented programming. Чт...

Хорошо, а какое отношение это имеет к мультипарадигменному C++?

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта