Функции членов C ++ Const являются модифицирующими переменными участника

Сегодня я узнал, что этот код как работает. Это звучит очень странно для меня, потому что, насколько я всегда знал, что вы не можете изменить любой из членов Const Cerfer. Вы на самом деле не можете сделать это напрямую, но вы можете вызвать функцию членов Non-Const. Если вы помечаете функцию элементов в виде Const, это означает, что этот указатель, передаваемый на функцию, указывает на объект Const, то как функция Non-Const Clement называется в примере ниже?

#include <iostream>

class X
{
public:
    void foo() const
    {
        ptr->bar();
    }
    void bar() {}
private:
    X * ptr;
};

int main()
{
}
12
задан axe 12 September 2011 в 15:40
поделиться