Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Доступ к приватным полям из метода класса


Автор: Хоббит 16.1.2012, 11:01
Вопрос скорей философский.

Есть класс, допустим некоторый контейнер. В нем есть приватное поле begin_ итератор на начало контейнера. Есть публичный метод begin() который по сути возвращает этот begin_. И есть некоторые другие методы данного класса, которым надо использовать begin. Так вот. Как лучше к нему обращаться begin_ или begin().

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

Что подскажете?

Автор: borisbn 16.1.2012, 11:17
ИМХО, лучше всегда обращаться через метод. В будущем можно будет его модифицировать (например, добавить lock/unlock). В этом случае тебе не придётся модифицировать остальную часть кода - искать где же ещё этот begin_ юзается.
Цитата(Хоббит @  16.1.2012,  11:01 Найти цитируемый пост)
Вроде даже и быстрее будет.

если метод просто делает return begin_; то компилятор это соптимизирует и разницы не будет никакой

Автор: boostcoder 16.1.2012, 11:23
добавлю то, что если это контейнер, то он скорее всего шаблонный (;)), а раз так, то у компилятора куда больше возможностей по оптимизации.

и да. члены-данные должны быть закрыты, и доступ к ним только при помощи аксессоров.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)