Изучение работы перегрузки с помощью operator..

Тема в разделе "WASM.BEGINNERS", создана пользователем EvilsInterrupt, 23 июл 2005.

  1. EvilsInterrupt

    EvilsInterrupt Постигающий азы дзена

    Публикаций:
    0
    Регистрация:
    28 окт 2003
    Сообщения:
    2.428
    Адрес:
    Russia
    Поясните пожалуйста код в аттаче.



    Код взят из книги.

    В ней написано что в const Counter operator++ (int); -

    (int) сделано для того чтобы различать префиксный

    вызов от постфиксного.



    Как же происхот вызов, я вижу i++ и ++i, и ничего по-

    добной:

    int a = 7;

    i++(a);

    не вижу!



    Как же все таки происходит вызов?



    Или же в i++ символы "++" являются аргументом?!

    Абсурдно.



    ЗЫ:

    Код взят из книги Дж. Либерти "Освой самостоятельно

    С++ за 21 день", 4 издание стр. 297

    [​IMG] 988259248__10_12.cpp
     
  2. rmn

    rmn Well-Known Member

    Публикаций:
    0
    Регистрация:
    23 ноя 2004
    Сообщения:
    2.329
    Насколько я понимаю перегрузка операторов означает,

    что использование оператора для объекта класса приводит к вызову функции-члена класса (в твоем случае - operator++).
     
  3. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    Советую посмотреть в ассемблерный код. Тогда прояснишь многие вещи.
     
  4. EvilsInterrupt

    EvilsInterrupt Постигающий азы дзена

    Публикаций:
    0
    Регистрация:
    28 окт 2003
    Сообщения:
    2.428
    Адрес:
    Russia
    Глядел, на уровне асма понятно, но блин. Не вижу логики в синтаксисе! Ведь его изобретали не для свиней, а для людей, следовательно должна быть наглядность такого синтаксиса, что и куда идет, вот я и пытаюсь ее увидеть
     
  5. EvilsInterrupt

    EvilsInterrupt Постигающий азы дзена

    Публикаций:
    0
    Регистрация:
    28 окт 2003
    Сообщения:
    2.428
    Адрес:
    Russia
    Кое что нарыл, В Г.Шилдт "Самоучитель С++" 3 изд. Там сказано что ранее в с++ не было разиличие меж префексным и постфиксным вызовом!(ведь речь идет о классах). И лишь в последствии в спецификации какой то дали различие.