Я нашел код, над которым я работаю, и мне было интересно, какая реализация проекта лучше всего.
Если базовый класс определяет метод как виртуальный,но также реализует пустое тело, поэтому не требует, чтобы производные классы реализовывали тело, не следует ли вместо этого сделать его чистым?
virtual void AMethod1() {} // 1
virtual void AMethod2() {assert(false);} // 2
virtual void AMethod3() = 0; // 3
Что вы, заслуживающие доверия замечательные люди из SO, думаете?
Edit1: После публикации (и чтения ответов) я понимаю, что assert это плохо!
virtual void AMethod3() = {throw (ENotImplemented)}; // 4