| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Доступ к приватным полям из метода класса |
| Автор: Хоббит 16.1.2012, 11:01 |
| Вопрос скорей философский. Есть класс, допустим некоторый контейнер. В нем есть приватное поле begin_ итератор на начало контейнера. Есть публичный метод begin() который по сути возвращает этот begin_. И есть некоторые другие методы данного класса, которым надо использовать begin. Так вот. Как лучше к нему обращаться begin_ или begin(). Кажется так как поле приватное доступно, лучше обращаться к нему напрямую. Вроде даже и быстрее будет. Но с другой стороны нужно как можно меньше обращаться к таким приватным полям. Что подскажете? |
| Автор: borisbn 16.1.2012, 11:17 |
| ИМХО, лучше всегда обращаться через метод. В будущем можно будет его модифицировать (например, добавить lock/unlock). В этом случае тебе не придётся модифицировать остальную часть кода - искать где же ещё этот begin_ юзается. если метод просто делает return begin_; то компилятор это соптимизирует и разницы не будет никакой |
| Автор: boostcoder 16.1.2012, 11:23 |
| добавлю то, что если это контейнер, то он скорее всего шаблонный (;)), а раз так, то у компилятора куда больше возможностей по оптимизации. и да. члены-данные должны быть закрыты, и доступ к ним только при помощи аксессоров. |