C++ Default constructor
===

    class temp
    {
    public:
        string str;
        int num;
    };

    int main()
    {
        temp temp1;
        temp temp2 = temp();

        cout << temp1.str << endl; //Print ""
        cout << temp2.str << endl; //Print ""

        cout << temp1.num << endl; //Print a rand num
        cout << temp2.num << endl; //Print 0
    }

What is the different between these two?

temp temp1;

temp temp2 = temp();