Документация SQLite для модуля R-tree говорит:
R-Tree - это специальный индекс, который предназначен для выполнения запросов диапазона.
BLOCKQUOTE>
То, что вы просите, называется «полиморфным поведением» (или «динамической диспетчеризацией»), и это базовая особенность C ++. Чтобы включить его, вам нужно сделать пару вещей:
Пометить ваши методы sayhello()
ключевым словом virtual
(т. Е. virtual void sayhello()
, а не просто void sayhello()
). )
Измените аргумент метода greet()
на передачу по ссылке или передачу по указателю, чтобы избежать проблем с разделением объектов (т. Е. int greet(const Mother & m)
, а не int greet(Mother m)
)
Как только вы это сделаете, компилятор будет разумно выбирать, какой метод sayhello()
вызывать во время выполнения, на основе фактического типа объекта аргумента m
, а не жесткое кодирование выбора во время компиляции на основе типа, явно указанного в списке аргументов функции greet
.