Зачем нужен полиморфизм, когда у нас есть ключевое слово "auto" в C ++ - PullRequest
0 голосов
/ 19 ноября 2018

Поправьте меня, если я ошибаюсь, но ключевое слово "auto" может решить все проблемы, для решения которых был изобретен полиморфизм.

вместо объявления виртуальной функции func класса A, когда у нас наследуется класс B, мы можем просто сказать, что функция func получает auto param, и она будет знать, в каком случае запускать.

Что мне не хватает?

1 Ответ

0 голосов
/ 19 ноября 2018

Нет, auto не может решить любую из этих проблем.

auto - это утилита времени компиляции для определения типа вещи из кода, который ее окружает. Он более тесно связан с шаблонами (действительно, auto в списке параметров лямбда-выражения реализуется шаблоном!).

Он не знает состояний среды выполнения и не может использоваться для виртуальной отправки.

Это совершенно разные понятия, и вам лучше всего заново изучить, что означает каждый из них.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...