![]() |
|
Модераторы: bsa |
![]()
|
|
| hoz |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 139 Регистрация: 27.6.2013 Репутация: нет Всего: нет |
В чём отличие явных и неявных членов классов? И вообще это видимо не тока к членам классов относится, а и к методах вообще?
|
|||
|
||||
| baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 15 Всего: 101 |
бывает неявное приведение типов, бывает неявное инстанцирование шаблонов и т.д.
что такое неявный член? если вы про конструкторы, не определенные программистом, а сгенерированные компилятором, то они называются конструкторами по умолчанию. реализация таких конструкторов всегда тривиальна. |
|||
|
||||
| hoz |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 139 Регистрация: 27.6.2013 Репутация: нет Всего: нет |
baldina, читаю я такую информацию:
И думаю. Вот тут я и подумал. Если метод с модификатором const, это не означает, что ни один член данного метода не будет изменён в процессе отработки данного метода? Только неявные члены не изменяются, а явные могут быть изменены? А у Стивена Прата есть такой момент:
Тут говорится, что если функция вообще не изменяет объект. Как это всё уяснить? Хочу чётко понять, когда применять const, в когда нет, и, что в этом случает возможно будет модифицироваться, а что нет. |
||||
|
|||||
| baldina |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 15 Всего: 101 |
там, куда вы ссылаетесь, под неявным понимается this - да, это член класса, присутствующий всегда и не требующий объявления. к нему применяются такие же правила, как и к остальным членам. главное отличие - this это не просто неявно заданный член, это ключевое слово.
к константам все это не имеет отношения. фраза там в лучшем случае корявая. у вас есть Прата - вот его и читайте. про const. объект может быть константой, тогда его изменить нельзя. если функция принимает аргумент по ссылке (что распространено для сложных типов - для производительности передается ссылка, а не объект целиком), но не собирается менять объект, ссылку следует объявить константной. это скажет и компилятору и читателю, что аргумент не изменяется.
Метод с модификатором const называется постоянным константным и не может модифицировать неявные переменные члены своего класса объекта, за исключением членов, объявленных как mutable. вообще, const стоит применять везде, где можно. чем меньше переменных (т.е. изменяемых) объектов в программе, тем проще анализ программы, тем быстрее выявляются ошибки и т.д. Это сообщение отредактировал(а) baldina - 25.8.2014, 10:59 |
||||||
|
|||||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |