LINUX.ORG.RU

C++ private поля

 


0

1

здрасте здрасте люди добрые

скажите пожалуйста посредством чего достигается инкапсуляция?

class exemple
{
int a=456; // как достигается то что поле'a' не видно полю 'b' ? 
public:
int b=789;
friend func(exemple obj); // как работает дружественная функция?
как она видит поля  private? заслуга компилятора в этом? 
как это происходит? думаю что многие скажут, что вопрос непонятен им.  Для них повторю еще раз. 

пожалуйста объясните как дружественная функция видит приватные поля ? объяснение преподов об окошечках меня не устроило. Тем более что вы недавно сами критиковали подобные глупые способы объяснения, находя их дурацкими. Так объясните пожалуйста правильно. Покажите как надо.

Еще раз:  каким образом дружественная функция видит приватные поля.  Почему поля класса из private и public не видны друг другу? они расположены в одной обрасти памяти? 

};

Ответ на: комментарий от fsb4000

А где избавились?

Нигде, конечно же. Хейтеры плюсов такие хейтеры. Царя на них нет.

anonymous
()
Ответ на: комментарий от Reset

Расскажите как Вы будете наглухо закрывать какие то данные процесса от каких то фрагментов кода этого процесса, если есть возможность ходить по произвольным адресам.

Тащем та инкапсуляция это сгребание в кучку данных и методов работы с ними. Геттеры/сеттеры и приватные поля это не про инкапсуляцию.

AntonI ★★★★★
()
Ответ на: комментарий от Reset

private - защита от прямого обращения к члену класса, и она работает. Если кто-то ожидал криптографической защиты данных, это его проблемы.

Инкапсуляция всё равно не про это.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.