В волшебном слове объектно-ориентированного программирования есть два способа вызова метода: статический и динамический диспетчеризация.
В статической диспетчеризациикод, вызываемый, когда вы делаете что-то вроде a.do_it()
, определяется статически, то есть определяется по типу переменной a
.
. При динамической диспетчеризации вызываемый код определяется динамически, т. е. онопределяется типом объекта , на который ссылается a
.
C ++, конечно, поддерживает и .Как вы сообщите компилятору, какой тип отправки вы хотите?Просто: по умолчанию у вас есть статическая диспетчеризация, если только вы не добавите virtual
в объявление метода.