Как написать реализацию 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) {
....
}
Лишит вас всех проблем