34. Проектирование системы обработки особых ситуаций. Базовые и расширенные гарантии.
Базовый класс особой ситуации
class MathErr {
private:
char *msgErr = nullptr;
public:
MathErr (char *msg) {
msgErr = msg;
}
virtual void virtualFunction ();
};
Производные (расширяемые) классы для каждой особой ситуации
class OverFlow: public MathErr {
public:
OverFlow(char *msg) : MathErr (char *msg) {}
void virtualFunction () {
...
}
};
class UnderFlow: public MathErr {
public:
UnderFlow(char *msg) : MathErr (char *msg) {}
void virtualFunction () {
...
}
};
class ZeroDivide: public MMathErr {
public:
ZeroDivide(char *msg) : MathErr (char *msg) {}
void virtualFunction () {
...
}
};