Yeah, exactly. h = HTML() is equivilent to: HTML* h; h = new HTML; and not HTML h; In C++ terms, all the variable names are reference counting "smart pointers", and we know how fun those are to implement. Over and over and over and over again.