данные частного класса - PullRequest
       6

данные частного класса

0 голосов
/ 28 сентября 2010

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

Edit:

Я ищу индивидуальный доступ к каждому элементу в другом классе.

Ответы [ 3 ]

5 голосов
/ 28 сентября 2010

Реальный вопрос в том, почему вам нужно перебирать список в «другом классе».Если вам нужно выполнить определенную операцию в классе клиента, у вас могут быть другие варианты:

  1. Если вам необходимо выполнить четко определенную операцию (скажем, вычисление среднего значения всписок), то вы можете реализовать эту функцию в качестве функции-члена класса, который хранит список.

  2. Если вам нужно выполнить все виды операций в списке, то вы можете построитьуниверсальный интерфейс итератора, который принимает функции или функторы, которые реализуют различные операции и возвращают любые результаты, которые вам нужны.

Ни одна из этих опций не требует раскрытия самого списка.

0 голосов
/ 28 сентября 2010

Да, я бы оставил это в тайне.Теперь, как мы знаем, функции-члены класса могут обращаться к закрытым членам этого класса, так почему бы не выполнить итерацию по std::list в самой функции-члену?

Если вам нужен доступ к нему в каком-то другом классе, тогда вам нужносоздать объект предыдущего класса (выполнить операцию вставки и т. д., вызвав некоторую функцию-член для этого объекта), а затем вызвать функцию-член, которая будет выполнять операцию итерации.

Я что-то пропустил?

0 голосов
/ 28 сентября 2010

Да, я бы оставил это в тайне, потому что я не хочу, чтобы кто-нибудь изменил его. Затем предоставьте пару const_iterator s для итерации list.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...