Я создал свой собственный класс исключений, который происходит от runtime_error
и получает int в c'tor.виртуальный метод в исключениях
Я хотел бы сделать базовый класс для этого исключения, чтобы использовать полиморфизм, поэтому я мог бы поймать только базовый класс, и в основном я бы поймал производный класс, а затем вызвал метод .what() ,
Таким образом, это базовый класс: (OFC в другом CPP файле я получил baseException :: ~ baseException() {})
class baseException
{
virtual ~baseException()=0 {}
virtual const char* what()=0;
};
И это производный класс:
class myException: public runtime_error, public baseException
{
public:
myException(int): runtime_error("Error occured") {}
const char* what() {return runtime_error::what();}
};
Но когда в основном я пишу:
catch(baseException* x)
{
cout<<x->what();
}
он просто пропускает его и не входит в блок, даже если MyException наследует фр om baseException. Есть предложения?
Что вы имеете в виду вы не можете? –
и где что() определено? – GazTheDestroyer
Почему бы не позволить 'baseException' наследовать от' std :: runtime_error' и 'myException' только от' baseException'? –