class Base
{
public:
virtual void func() const
{
cout<<"This is constant base "<<endl;
}
};
class Derived : public Base
{
public:
virtual void func()
{
cout<<"This is non constant derived "<<endl;
}
};
int main()
{
Base *d = new Derived();
d->func();
delete d;
return 0;
}
Почему вывод выводит "Это постоянная база". Однако, если я удаляю const в базовой версии func(), он печатает "Это не константа"
d- > func() должен вызывать версию Derived right, даже если Base func() является const правильным?