Ввод вещей дважды печален и не предотвращает copy& ошибки вставки или даже некоторые опечатки.
я использовал бы аутентифицировать/активировать схему со списком назад к старому адресу, если активация не встречена в течение 48 часов или если электронная почта возвращается.
Make either B or C inherit from A using "public virtual" instead of just "virtual". Otherwise it's assumed to be privately inherited and your main() won't see A's methods.