Вызов перегружаемого метода (одна из ф-ций static )
От: Аноним  
Дата: 20.10.04 10:08
Оценка:
В классе есть перегружаемый метод P:

class Tn
{
...
static void P(int) {...}; // именно static
void P(char) {...};
...
}

Создается два объекта этого класса:

const Tn Ob1;
Tn Ob2;

При вызове метода P таким образом:
Ob2.P(0);

вызывается void P(char) {...};

При вызове метода P таким образом:
Ob1.P(0);

вызывается static void P(int) {...}

Я понимаю, что объект созданный с модификатором const не может вызвать неконстантный метод (Ob1 не может вызвать void P(char) {...}), но как вызывается
статический метод без оператора :: и что происходит с указателем this (ведь когда объект класса вызывает метод класса он передает ему указатель this).
Код не компилируется, конечно, если в static void P(int) {...} есть this, но передаваться он должен.


20.10.04 18:23: Перенесено модератором из 'C/C++. Прикладные вопросы' — Павел Кузнецов
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.