#pragma once
#include <iostream>
class Duration {
private:
int hours, minutes, seconds;
public:
Duration() : hours(0), minutes(0), seconds(0) {}
Duration(int s) : hours(s / 3600), minutes((s % 3600) / 60), seconds(s % 60) {}
int get_s() const { return seconds; }
int get_m() const { return minutes; }
int get_h() const { return hours; }
friend std::ostream& operator<<(std::ostream&, Duration&);
};
#include "duration.hpp"
#include <iostream>
std::ostream& operator<<(std::ostream& os, Duration& duration) {
os<< duration.get_h()<<duration.get_m()<<duration.get_s();
return os; }
#include <iostream>
#include "duration.hpp"
int main() {
Duration d1{};
Duration d2{2222};
std::cout << d1 <<d2;
}
I get the undefined reference to `operator<<(std::ostream&, Duration&)' error. How do I implement a << operator that shows values of the constructors ?
I am a newbie and just started learning about Classes, how do I solve this? Thanks