поэтому у меня проблема с моим кодом, я хочу перегрузить operator <<, все функции находятся в абстрактном классе Employee, так что </p>
friend std::ostream &operator<<(std::ostream &os, const Employee &employee) {
os<<employee.print();
return os;
}
Это функция печати:
virtual const std::string& print() const {
return "description: "+this->description+ " id: "+ std::to_string(this->getID()); }
Описание и идентификатор только переменной в классе Employee
И это просто не работает, и я получаю исключение E0317, я понимаю, как то, что print возвращает, это не строка.
Также, если я изменю тип возврата на
std::basic_string<char, std::char_traits<char>, std::allocator<char>>
это волшебным образом работает, но я не понимаю, почему я не могу использовать стандартную строку.