Это было изобретено, чтобы позволить функцию полиморфизма.Идея состоит в том, что функция, являющаяся глаголом (например, «печать»), имеет только одно значение.Тем не менее, может быть различная реализация в зависимости от того, к чему применяется глагол (например, int, float и std :: string).
Итак, нам нужно одно слово для концепции, но несколько реализаций в зависимости от того, к чему она применяется.
То, к чему она применяется, это аргумент (ы).Поэтому нам нужен был способ использовать одно и то же слово для нескольких различных типов аргументов с - где необходимо - относительной реализацией типа аргумента.
Попробуйте написать сложную конкатенацию с помощью printInt (), printString (), printFloat(), вы увидите очевидное многословие.
Другая причина заключается в том, что он позволяет проверить, какая реализация доступна для типа аргумента уступки.Если нет доступной реализации (даже не универсальной - с использованием шаблонов), то компилятор остановит вас, как только сможет, и даст вам понять, что у него нет реализации вашего глагола для данного аргумента.