Виртуальные ли функции по умолчанию нарушают закрытие для модификации?
Являются ли функции, являющиеся окончательными по умолчанию, нарушающими открытое расширение?
Должны ли функции быть конечными по умолчанию, если реализовано множественное наследование?
Как насчет занятий?
Должны ли они быть виртуальными по умолчанию или окончательными по умолчанию?
Или финальный и виртуальный должны быть явными? (То есть вынудить кодировщика объявлять все функции или классы как окончательные или виртуальные, как, например, в большинстве языков нет возвращаемого типа по умолчанию.) Поскольку явный лучше, чем неявный.
Final означает, что функция или класс не могут быть унаследованы или переопределены, виртуальная означает, что функция или класс могут быть унаследованы или переопределены.