Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Вызов тут при том, что если объект1 класса А вызывает константный метод класса А, то этот метод не может менять этот объект1 (т.е. тот объект1, который его вызвал). Если же объект1 передать по ссылке в этот же самый константный метод, но вызванный из объекта2 класса А, то объект1 можно будет изменить. Объект2, в свою очередь, нет.
Как может объект вызывать метод? Метод может вызываться из функции или из другого метода.
Вызывается не просто метод класса, а метод конкретного объекта. Сам по себе класс это абстракция.
Как может объект вызывать метод? Метод может вызываться из функции или из другого метода.
Вызывается не просто метод класса, а метод конкретного объекта. Сам по себе класс это абстракция.
Вот это жесть. А запись типа
это как называется?
Вы же сами пишите:
Вызывается не просто метод класса, а метод конкретного объекта.
Вы еще скажите, что допустима такая запись:
Дак метод то что вызывает?
upd: т.е. посредством чего вызывается метод?
Вот это жесть. А запись типа
это как называется?
Вы же сами пишите:
Вы еще скажите, что допустима такая запись:
Дак метод то что вызывает?
upd: т.е. посредством чего вызывается метод?
Посмотрите на ситуацию. Непонятки у вас, а не у меня. Пример Алексея вам кажется не корректным, а мне кажется достаточно четким и понятным, вопросов он у меня не вызывал, а только дал понимание.
--
"А запись типа" - называется вызовом метода "method" объекта "obj".
--
"Вы еще скажите, что допустима такая запись" - впечатление такое, что это вы про такое пишите.
---
Метод ничего не вызывает. Метод вызывается.
Посмотрите на ситуацию. Непонятки у вас, а не у меня. Пример Алексея вам кажется не корректным, а мне кажется достаточно четким и понятным, вопросов он у меня не вызывал, а только дал понимание.
--
"А запись типа" - называется вызовом метода "method" объекта "obj".
--
"Вы еще скажите, что допустима такая запись" - впечатление такое, что это вы про такое пишите.
---
Метод ничего не вызывает. Метод вызывается.
Пример Алексея вполне допустим, но он не должен, по моему личному мнению, являться примером для других.
Понимаете, Вы так и не ответили на мой вопрос: что инициирует вызов метода класса (или иначе, что вызывает метод (не что вызывается посредством метода, а что/кто вызывает сам метод))?
Любой метод. Простой же вопрос, Вы же статью писали для начинающих по ООП.
Метод ничего не вызывает. Метод вызывается.
1. Пример Алексея вполне допустим, но он не должен, по моему личному мнению, являться примером для других.
2. Понимаете, Вы так и не ответили на мой вопрос: что инициализирует вызов метода класса (или иначе, что вызывает метод (не что вызывается посредством метода, а что/кто вызывает сам метод))?
3. Любой метод. Простой же вопрос, Вы же статью писали для начинающих по ООП.
1. Предложите свой пример.
2. Не ответил. Потому-что вообще непонятно о чем разговор.
3. Тоже уже непонятно о чем разговор.
void fun(){ obj.method(); }
Метод "method" объекта "obj" вызывается из функции "fun".1. Предложите свой пример.
2. Не ответил. Потому-что вообще непонятно о чем разговор.
3. Тоже уже непонятно о чем разговор.
2. Разговор уже о том, что вызывает метод класса (не статический метод). Метод класса вызывается объектом класса или иначе, объект класса инициирует вызов метода класса, например так:
obj.method(); // obj - объект класса А, method() - метод класса А
Если метод константный, то он не может модифицировать объект, посредством которого он был вызван, т.е. объект obj. Переданный же в него объект (например, obj2):
может быть модифицирован, если передан по ссылке без модификатора const. Вот и все.
Мне изначально были не понятны заявления "корефеев" форума:
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Что означает модификатор const после объявления метода
Комбинатор, 2016.01.31 20:32
В С++ это означает, что метод не может менять членов класса, за исключением членов, объявленных mutable.
Т.к. в MQL такого хрен дождешься, это означает, что метод в принципе не может изменять объект.
или
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Что означает модификатор const после объявления метода
Vasiliy Sokolov, 2016.02.01 11:55
Константный метод - очередной пример пословицы "хотели как лучше, получилось как всегда". Думаю для С++ это вообще девиз. Практической пользы нет никакой, зато существенно затрудняет проектирование ООП-программ, т.к. постоянно требуется контролировать тип модифицируемого объекта (должен быть также константным).или
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Что означает модификатор const после объявления метода
Vasiliy Sokolov, 2016.02.01 14:02
Пример Алексей написал. Константный метод не может менять члены своего класса...
Я и не отрицаю. Шарп действительно совершенный, великий и прекрасный язык.
Хорошо, допустим с const всегда можно вывернутся. Но лучше кратко объясни на примере, что дает const? В чем его реальная польза? На примере, и желательно не из пальца высосанном.
Одно дело, когда пишешь для себя и весь проект тысячи - десятки тысяч строк. Другое дело, когда проект в миллионы строк и это передается заказчику, а там сидит индус Харикришна, который ни в зуб ногой. Я с индусами из Бангалора работал, уровень реально был ниже, чем у наших ребят.
Там же как - кто-то отучился на программера, тащит за собой остальную родню на работу, а те могут совсем ничего не знать. Это же цыгане.
А если критичный код упакован в либу, то меньше вероятности порчи. Ну я так думаю.
...
Это и имеется ввиду, потому-что в данном контексте о типе не ведется разговор. "Свой класс" - это очевидно, что свой экземпляр (т.е. объект).
Член _x принадлежит тому же классу в котором находится метод bar.
C obj._x - здесь член _x находится в постороннем классе obj.
Мне кажется допустимым говорить про класс, а не экземпляр, потому-что очевидно, что _x относится к нашему классу который пишем, и obj.x к постороннему, который обрабатываем.
Если уж говорить о терминологии ООП, тут вся терминология немного того (или даже много).
Лично я всегда понимал const-методы, как методы, которые не могут менять переменные класса.
Использовал крайне редко - потому, что не раз нарывался на ситуацию, когда при переопределении метода - требуется что-то изменить, а базовый метод - константный (тут уже говорилось про это).
Static-методы использую широко и густо. Практически в любом сколь-нибудь сложном классе. Обычно это "обслуживающие" дополнительные методы, для работы которых не нужно обращение к переменным класса.
Кроме того, для констант типа "количество секунд в сутках" стараюсь использовать конструкцию static const, а не #define. При этом объявление и инициализация такой константы находится в разных местах, но зато, происходит контроль типов, который также меня не раз выручал.