В классе есть перегружаемый метод 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++. Прикладные вопросы' — Павел Кузнецов