Я понимаю разницу между статической и динамической привязкой в том смысле, что вызовы методов определяются во время компиляции для статической привязки, тогда как вызовы методов определяются во время выполнения для динамической привязки.C++ Статическое и динамическое поведение Binding
Одна вещь, которую я не понимаю, - это то, почему вам нужно передать ссылку или указатель на динамическую привязку. Я пробовал смотреть онлайн, но я все еще смущен. Это потому, что когда вы проходите по значению, вы передаете копию, что означает, что она должна быть инициализирована, что означает, что она нарезается?
Например, Pet
является базовым классом, а Dog
является производным классом.
Теперь ...
void print(Pet p) {} // Calls print from the pet class
void print(Pet &p) {} // Calls print from the type of pet object being passed. For example, Dog::print() rather than Pet::print()
Если кто-то может объяснить мне лучше это будет действительно сделать меня счастливым
Благодаря
Эти вещи ортогональны. Нет сильного требования иметь ссылочные параметры для _динамического связывания_. Может быть, вы что-то смешаете с _динамическим полиморфизмом. –