1.
CContact() {} <------- What's this?
Default constructor of CContact. It will be called when you create an instance of CContact without any parameters.
CContact localInstance;
2.
void Serialize(CArchive& archive); <--------- Function declaration? Right?
Yes. Definition of Serialize() may be in cpp file of the class.
3.
CContact& operator=(const CContact& contact) <--- What does the rest of this do?
= operator overloaded of CContact. This will be called when a CContact instance assigned to another CContact instance. Compiler will create a default =operator implementation, if we are not created the same. But we have to create our own =operator implementation in certain situations. If any member is pointer to a memory location, then we have to prepare separate copy of the pointer for the new instance of CContact.
CContact contactA;
....
....
CContact contactB;
contactB = contactA;