Используйте чисто виртуальные функции вместо выбрасывания исключений
Если виртуальная функция базового класса никогда не должна вызываться и, если порожденный класс ДОЛЖЕН переопределить виртуальную функцию, делайте виртуальную функцию базового класса чисто виртуальной.
Неправильно:
class BaseObject {
public:
virtual void WriteTo(CObjSerializer& El) {
throw std::logic_error("Not Implemented");
}
virtual void ReadFrom(CObjSerializer& El) {
throw std::logic_error("Not Implemented");
}
// ...
};
Правильно: