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;
}
Why does the output prints "This is constant base". However if i remove const in the base version of func(), it prints "This is non constant derived"
d->func() should call the Derived version right, even when the Base func() is const right ?
See Question&Answers more detail:os