Как написать реализацию firend функции в cpp файле

Объявил в классе TimeSpan в файле timespan.hpp дружественные функции:

friend std::ostream& operator<<(std::ostream out, const TimeSpan t);
friend TimeSpan operator+(const TimeSpan &t1, const TimeSpan &t2);
friend TimeSpan operator-(const TimeSpan &t, const TimeSpan &t2);

Но как начинаю писать реализацию в cpp файле пишет, что TimeSpan не содержит члена operator+

TimeSpan TimeSpan::operator+(const TimeSpan &t1, const TimeSpan &t2) {
    ....
}

В чем проблема, как можно это исправить?


Ответы (1 шт):

Автор решения: DiHASTRO

Дружественная функция не принадлежит классу в том смысле, в котором мы привыкли. Поэтому область видимости для неё прописывать не нужно (ту штуку до двух двоеточий)

TimeSpan operator+(const TimeSpan &t1, const TimeSpan &t2) {
    ....
}

Лишит вас всех проблем

→ Ссылка