Problem implementing a << operator for a class

35 views Asked by At
#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

0

There are 0 answers