Функции, выполняющие сходные действия для различных наборов входных данных логично называть одним именем. В языке C++ допустимо иметь несколько функций с одним и тем же именем, потому что функции различаются не только по именам, но и по списку типов параметров. Иногда говорят, что у этих функций разные сигнатуры.
Тип возвращаемого значения не входит в сигнатуру функции. Попытка определения двух функций с одним и тем же именем и списком типов параметров, но с разными возвращаемыми значениями приведет к ошибке компиляции.