Инкапсуляция со структурой - PullRequest
1 голос
/ 24 декабря 2011

У меня есть сомнения относительно концепции инкапсуляции.

Разве язык C не выполняет инкапсуляцию с типом данных 'struct'?

переменные данных и функции, присутствующие в структуре, могут вызываться только через переменную структуры. и нет другой переменной в системе. Разве это не сокрытие данных?

Я пытаюсь связать эту концепцию, чтобы понять инкапсуляцию C ++.

1 Ответ

2 голосов
/ 24 декабря 2011

На самом деле существует только «частичное скрытие» структур в C. Вы можете посмотреть на этот пост для более подробного объяснения:

Есть ли обходной путь для того, чтобы сделать элемент структуры как-то «приватным»в C?

Однако инкапсуляция в C ++ относительно похожа.Вы не можете полностью скрыть все элементы данных из клиентского кода (даже если они находятся в разделе private).Это, по-видимому, «нарушение» инкапсуляции, но такова природа языка.

...