Эффективность виртуальной функции и ключевое слово final
Рассмотрим программу, которая имеет классFoo
содержащий функциюFoo::fn
объявлено так:
virtual void fn();
и подклассFoo
называетсяBar
, Будет декларироватьBar::fn
как это:
virtual void fn() override final;
вызывать звонкиfn
вBar
или подклассыBar
быть более эффективным, или он просто будет держать подклассыBar
от переопределенияfn
? Если звонки сделаны более эффективно, используяfinal
какой самый простой, самый эффективный метод для определенияBar::fn
так что его функциональность точноFoo::fn
?