Объект класса и указатель на него.

Тема в разделе "LANGS.C", создана пользователем Green_DiCk, 9 ноя 2008.

  1. Green_DiCk

    Green_DiCk New Member

    Публикаций:
    0
    Регистрация:
    8 июл 2007
    Сообщения:
    338
    85.25.138.222
    Встретил такой вот код. Оччень удивился. И по сю пору пребываю в недоумении.

    Код (Text):
    1. CRect rcClip;
    2.     VERIFY(pDC->GetClipBox(rcClip) != ERROR);
    Прототип метода:
    Код (Text):
    1. virtual int GetClipBox(LPRECT lpRect) const;
    т.е. как видно принимает указатель на объект класса (если быть точным, то указатель на структуру, от которой наследует CRect, но дела это не меняет), а выше ему передается сам
    объект...
    Ну и далее по коду несколько раз встречается эта ситуция - разным методам, принимающим указатель, передается сам объект.

    Код вроде бы работает. Но это не самое удивительное (и не такое подчас работает). Компилятор молчит! Компилирует как будто так и надо. Вот я и подзадумался - мож действительно так и надо?? O_o

    P.S. Приведенный код находится в конструкторе класса...
     
  2. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    Всё нормально. У CRect есть оператор привидения к LPRECT.
    http://msdn.microsoft.com/en-us/library/f1wyf0b2.aspx
     
  3. Green_DiCk

    Green_DiCk New Member

    Публикаций:
    0
    Регистрация:
    8 июл 2007
    Сообщения:
    338
    Booster
    Ммм...
    Спасибо.
    Чего только не придумают...