MS>Перегружать функции в C++ можно только по аргументам, но не по возвращаемым значениям.
MS>Отсюда следует, что возвращаемое значение не участвует в формировании имени функции на этапе компиляции.
MS>Поэтому никаких проблем с точки зрения линкера нет.
Дык, я не собирался ее перегружать! Просто хочу использовать функцию из одного .cpp в другом, для чего вынес ее объявление в .h . Я только начинающий в с++, но кажется в данном случае делал все правильно. И я очень удивлен, что компилятор не предупредил меня, что я опечатался и типы возвращаемых значений объявлений функции в head.h и head.cpp не совпадают!
Ведь строчка
x=f();
в main.cpp — серьезная ошибка, учитывая, что f() — функция не возвращающая значения.
Имхо, компилятор не должнен пропускать подобных ляпов.