I'm preparing my self for a test tomorrow morning. I am struggling with the below C++ walkthrough.
I have run the code and used cout to check the execution of the program. The first thing that I noticed that the program is calling the default constructor in class "one" for 3 times just for the first object in main. I am really confused with the execution of the code.

```
    #include <iostream>
    using namespace std;

    class one {
    int n;
    int m;
      public:
    one() { n = 5; m = 6; cout << "one one made\n"; }
    one(int a, int b) {
      n = a;
      m = b;
      cout << "made one one\n";
    }
    friend ostream &operator<<(ostream &, one);
    };

    ostream &operator<<(ostream &os, one a) {
    return os << a.n << '/' << a.m << '=' <<
     (a.n/a.m) << '\n';
    }

    class two {
    one x;
    one y;
      public:
    two() { cout << "one two made\n"; }
    two(int a, int b, int c, int d) {
      x = one(a, b);
      y = one(c, d);
      cout << "made one two\n";
    }
    friend ostream &operator<<(ostream &, two);
    };

    ostream &operator<<(ostream &os, two a) {
    return os << a.x << a.y;
    }

    int main() {
    two t1, t2(4, 2, 8, 3);
    cout << t1 << t2;
    one t3(5, 10), t4;
    cout << t3 << t4;
    return 0;
    } 

```

I don't understand the first thing. When the main calls the first default constructor `two t1,` why is it been called three times in a row then it will call `t2(4, 2, 8, 3);`?

I am sorry if the code is too long, but I really need help to understand it.

Please advise. Thank you.