Const верхнего уровня не влияет на сигнатуру функции

Начиная с 5-го издания C ++ Primer:

int f(int){ /* can write to parameter */}
int f(const int){ /* cannot write to parameter */}

Две функциинеразличимый, Но, как вы знаете, две функции действительно отличаются тем, как они могут обновлять свои параметры.

Может кто-нибудь объяснит мне?

РЕДАКТИРОВАТЬ
Я думаю, что не очень хорошо истолковал свой вопрос. Что меня действительно волнует, так это то, что C ++ не позволяет этим двум функциям одновременно выполнять разные функции, поскольку они действительно различаются в отношении того, «может ли параметр быть записан или нет». Интуитивно, это должно быть!

РЕДАКТИРОВАТЬ
Природапередать по значению на самом делепередать путем копирования значений аргументов в значения параметров, Даже дляРекомендации а такжеуказатели где ты скопировал значенияадреса, С точки зрения звонящего, будь тоConst или женеконстантная передается в функцию не влияет на значения (и, конечно, типы), скопированные в параметры.
Различие междуверхний уровень const а такженизкий уровень const имеет значение при копировании объектов. Более конкретно,верхний уровень const(не в случаенизкий уровень const) игнорируется при копировании объектов, поскольку копирование не повлияет на копируемый объект. Неважно, является ли объект, скопированный или скопированный сConst или нет.
Поэтому для вызывающего абонента дифференцировать их не нужно. Вероятно, с точки зрения функцииверхний уровень const параметры не влияют на интерфейс и / или функциональность функции. Две функции фактически выполняют одно и то же. Зачем реализовывать две копии?

Ответы на вопрос(7)

Ваш ответ на вопрос