#include #include #include using namespace std; //я фигею с такой безграмотности class TRecord { private : char *FirstName ; char *LastName ; char *PhoneNum ; char *Email ; public : TRecord (void) ; TRecord (TRecord& copy) ; TRecord (char *firstname, char *lastname, char *phonenum, char *email) ; ~TRecord (void) ; int SetFirstName (char *firstname) ; int SetLastName (char *lastname) ; int SetName (char *firstname, char *lastname) ; int SetPhoneNum (char *phonenum) ; int SetEmail (char *email) ; char *GetFirstName (void) ; char *GetLastName (void) ; char *GetName (void) ; char *GetPhoneNum (void) ; char *GetEmail (void) ; bool operator <= (TRecord X) ; TRecord& operator = (TRecord from) ; int ABC (char *string) ; int strcomp (char *A, char *B) ; } ; TRecord::TRecord(TRecord& copy):FirstName(NULL), LastName(NULL), PhoneNum(NULL), Email(NULL){ (*this) = copy ; } TRecord& TRecord::operator = (TRecord from) { // лучше использовать SetName... А в них то, что ниже if(!FirstName) FirstName=new char[len]; else if(strlen(FirstName)<(len=strlen(from.Person.FirstName)) ) { delete []FirstName; FirstName = new char[len]; } /// и т.д. strcpy (this->Person.FirstName, from.Person.FirstName) ; strcpy (this->Person.LastName, from.Person.LastName) ; strcpy (this->PhoneNum, from.PhoneNum) ; strcpy (this->Email, from.Email) ; return *this ; } TRecord::TRecord (void):FirstName(NULL), LastName(NULL), PhoneNum(NULL), Email(NULL) { Person.FirstName = new char[32]; FirstName[0]=0; Person.LastName = new char[32]; LastName[0]=0; PhoneNum = new char[32]; PhoneNum[0]=0; Email = new char[32]; Email[0]=0; } TRecord::TRecord (char *firstname, char *lastname, char *phonenum, char *email) { SetName (firstname, lastname) ; SetPhoneNum (phonenum) ; SetEmail (email) ; } TRecord::~TRecord (void){ if (Person.FirstName) { delete[] Person.FirstName ; Person.FirstName = NULL; } if (Person.LastName) { delete[] Person.LastName ; Person.LastName = NULL; } if (PhoneNum) { delete[] PhoneNum ; PhoneNum = NULL; } if (Email) { delete[] Email ; Email = NULL; } }