почему виртуальные функции не могут быть стати c и глобальными? - PullRequest
0 голосов
/ 23 февраля 2020

Что происходит, когда мы делаем виртуальную функцию stati c? Я пытался сделать виртуальную функцию stati c в родительском классе, но она выдавала ошибку компилятора.

1 Ответ

1 голос
/ 23 февраля 2020

Виртуальные функции работают с использованием текущего объекта для поиска правильного метода для вызова через его vtable, поэтому они могут быть переопределены. Stati c и глобальные методы не ссылаются на объект и поэтому не имеют места для хранения такого указателя на функцию.

Вы можете узнать больше, выполнив поиск информации о vtable.

...