Base const* b
означает b
- указатель, который указывает на неизменный объект (постоянный объект).В c ++ неизменяемый объект может просто использовать методы const, например, для метода const:
class Base
{
public:
int method1(/*some parameters*/) const //this is a const method
{
//do something
}
const int method2(/*some parameters*/) //this is NOT a const method
{
//do something
}
}
Итак, вы должны изменить b
на обычный указатель, а не указатель на const-объект.Или сделайте what()
как метод const.