#include <iostream>           // nodig voor cout (schrijven naar scherm)
#include <iomanip>            // nodig voor setw (veldbreedte definiëren)
using namespace std;

// De declaratie van de ADT Tijdsduur:

class Tijdsduur {
public:
//...
    void print(ostream& o) const;
private:
//...
};

ostream& operator<<(ostream& left, const Tijdsduur& right);

// De implementatie van de ADT Tijdsduur:

//...

void Tijdsduur::print(ostream& o) const {
    // Deze functie moet de Tijdsduur wegschrijven naar de uitvoer genaamd "o"
    o << //.. 
}

// Deze operator hoef je nu nog niet te begrijpen
// In les 7 wordt dit uitgelegd
ostream& operator<<(ostream& left, const Tijdsduur& right) {
    right.print(left);
    return left;
}

int main() {
    Tijdsduur t1(3, 50);        // t1 is 3 uur en 50 minuten
    cout << "t1 = " << t1 << endl;
    const Tijdsduur kw(15);     // kw is 15 minuten
    cout << "kw = " << kw << endl;
    t1 += kw;                   // Tel kw bij t1 op
    cout << "t1 = " << t1 << endl;
    Tijdsduur t2(t1 - kw);      // t2 is t1 min kw
    cout << "t2 = " << t2 << endl;
    t2 *= 7;                    // Vermenigvuldig t2 met 7
    cout << "t2 = " << t2 << endl;
    Tijdsduur t3(t2 - 122);     // t3 is t2 minus 122 minuten
    cout << "t3 = " << t3 << endl;
    Tijdsduur t4(722 - t1);     // t4 is 722 minuten minus t1
    cout << "t4 = " << t4 << endl;
    if (t3 != t4)
        cout << "t3 is ongelijk aan t4." << endl;
    if (t3 > t4)
        cout << "t3 is groter dan t4." << endl;
    cin.get();
    return 0;
}
