Добрый день. Изучаю самостоятельно C++
По какой книжке, какому источнику? Просто возникший вопрос указывает на то, что его (источник) нужно срочно поменять на более серьёзный.
какой тип возвращаемого значения может быть у функции?
Тип возвращаемого значения может быть:
  1. никаким (
void) 
      - в этом случае ф-я не возвращает никакого значения, или 
  2. любым, известным в данной области видимости
      - в этом случае тип возвращаемый ф-ей должен соответствовать типу оператора 
returnЕсли возвращаемый тип не является указателем, то в возвращаемом типе (классе) должен быть определён конструктор копирования.