Взято из блога Эрика Ганнерсона «virtual functions are not inlined», но что квалифицируется как виртуальный метод? MSDN определяет его как:.Являются ли методы переопределения виртуальными методами?
«Если объявление метода экземпляра включает в себя виртуальный модификатор, этот метод называется виртуальный метод Когда никакой виртуальный модификатор не присутствует, то способ называется не-виртуальный метод «. ? - MSDN Source
Строго говоря, производный класс с методом коррекции public override void SomeMethod(){}
"не содержит слово virtual
, так это могло быть встраиваемыми
Edit: В частности, речь идет ли перекрытый метод является кандидатом на inlining, поскольку две ссылки, которые я предоставил, слишком расплывчаты по методам переопределения.
Вы не можете переопределить не виртуальный метод. Является ли метод виртуальным («может быть переопределен в подклассах») или нет, определяется в верхней части его цепочки наследования. (Дайте или возьмите уплотнение и повторное открытие, но я действительно не знаю всех краевых случаев этих модификаторов.) – millimoose
@millimoose Можете ли вы привести источник? Это прямо противоположно тому, что говорится в статье MSDN. –
См. [MSDN] (http://msdn.microsoft.com/en-us/library/ebca9ah3 (v = vs.71) .aspx) –