![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
Хоббит |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1263 Регистрация: 6.11.2005 Репутация: нет Всего: 1 |
Вопрос скорей философский.
Есть класс, допустим некоторый контейнер. В нем есть приватное поле begin_ итератор на начало контейнера. Есть публичный метод begin() который по сути возвращает этот begin_. И есть некоторые другие методы данного класса, которым надо использовать begin. Так вот. Как лучше к нему обращаться begin_ или begin(). Кажется так как поле приватное доступно, лучше обращаться к нему напрямую. Вроде даже и быстрее будет. Но с другой стороны нужно как можно меньше обращаться к таким приватным полям. Что подскажете? |
|||
|
||||
borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 22 Всего: 135 |
ИМХО, лучше всегда обращаться через метод. В будущем можно будет его модифицировать (например, добавить lock/unlock). В этом случае тебе не придётся модифицировать остальную часть кода - искать где же ещё этот begin_ юзается.
если метод просто делает return begin_; то компилятор это соптимизирует и разницы не будет никакой -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
добавлю то, что если это контейнер, то он скорее всего шаблонный (;)), а раз так, то у компилятора куда больше возможностей по оптимизации.
и да. члены-данные должны быть закрыты, и доступ к ним только при помощи аксессоров. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |