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 параметры не 't влияет на интерфейс и / или функциональность функции. Две функции фактически выполняют одно и то же. Зачем реализовывать две копии?

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

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