//#pragma warning(disable:4996) //#include //#include //#define MAX_SIZE 50 //#define MAX_L 4096 //using namespace std; //struct StudentStruct { // //public // int id{ 0 }; // void setId(int id) { // if(this->id ==0) this->id = id; // } //}; // //class Student { // //public: // void setId(int id); // // void setName(char* name_); // // void setInform(const char* inf); // // int getId()const; // // const char* getName()const; // // //char* getInform()const { // // return (inform != nullptr) ? inform : new char[MAX_SIZE] {"NoInform"}; // //} // const char* getInform()const; // // // // // void show()const; // // const char* studentToString()const; ////protected: // // Student(){} // // // //Student(){ // // id = 0; // // strcpy(name, "NoName"); // // inform = nullptr; // //} // // Student(); // // Student(int id, const char* name_); // // Student(int id, const char* name_, const char* inf); // // ~Student(); //private: // int id;// { 0 }; // char name[MAX_SIZE];// {"NoName"}; // char* inform;// { nullptr }; //}; // //inline void Student::setId(int id) { // if (this->id == 0) this->id = id; //} // //inline void Student::setName(char* name_) {//(const char*) // if (name_ == nullptr) return; // strcpy_s(name, strlen(name_) + 1, name_); //} // //inline void Student::setInform(const char* inf) { // if (inf == nullptr) return; // if (inform != nullptr) delete[] inform;//? // inform = new char[strlen(inf) + 1]; // strcpy_s(inform, strlen(inf) + 1, inf); //} // //inline int Student::getId()const { // return id; //} // //inline const char* Student::getName()const { // char* str = new char[MAX_L] { "" }; // strcpy(str, name); // return str; //} // //inline const char* Student::getInform()const { // if (inform == nullptr) return "NoInform"; // char* str = new char[MAX_L] { "" }; // strcpy(str, inform); // return str; //} // // // // //inline void Student::show()const { // cout << "Id= " << id // << "\nName " << name // << "\nInform " << getInform()// ((inform != nullptr) ? inform : "NoInform") // << endl; //} // //inline const char* Student::studentToString()const { // char* str = new char[MAX_L] { "" }; // //strcat_s(str, "Id= "); // sprintf(str, "Id = %d \nName %s \nInform %s ", id, name, getInform()); // //%d %i - int // //%f %e %g -float double // //%s - string const char* char* // return str; //} // // //Student::Student() :id{ 0 }, name{ "NoName" }, inform{ nullptr }{ // cout << "\n Create student: " << this << endl; //} // //Student::Student(int id, const char* name_) :id{ id }, inform{ nullptr }{ // /* if (name_ == nullptr) return; // strcpy_s(name, strlen(name_) + 1, name_);*/ // cout << "\n Create student: " << this << endl; // setName((char*)name_); //} // //Student::Student(int id, const char* name_, const char* inf) :id{ id } { // /* if (name_ == nullptr) return; // strcpy_s(name, strlen(name_) + 1, name_); // if (inf == nullptr) return; // inform = new char[strlen(inf) + 1]; // strcpy_s(inform, strlen(inf) + 1, inf);*/ // cout << "\n Create student: " << this << endl; // setName((char*)name_); // setInform(inf); //} // //Student::~Student() { // cout << "\n Delete student: " << this << endl; // if (inform != nullptr) delete[] inform; //} // //int main() { // //int a; // //a = 5; // //int b{ 5 }; // //auto c = 5; // { // Student student; // cout << "\nStudent( create):\n" // << student.studentToString() // << endl; // Student student1{2, "Olya" }; // student1.show(); // Student* pStud = new Student(3, "Sasha"); // pStud->show(); // Student student3{ 12,"Ivan","Good student"}; // cout << "\nStudent: " << student3.studentToString() << endl; // delete pStud; // }//~Student() // // cout << "End program" << endl; // //system("pause"); // system("pause"); //} #pragma warning(disable:4996) #include #include #define MAX_SIZE 50 #define MAX_L 4096 #define PHONE 15 #define BIRTDATE 20 using namespace std; class Student { public: Student(int id = 0, const char* name = "NoName", const char* birthDate = "NoDate", const char* phone = "0000000000", const char* city = "NoCity", const char* country = "NoCountry", const char* university = "NoUniversity", const char* group = "NoGroup"); ~Student(); void setId(int id); int getId() const; void setName(const char* name); const char* getName() const; void setBirthDate(const char* birthDate); const char* getBirthDate() const; void setPhone(const char* phone); const char* getPhone() const; void setCity(const char* city); const char* getCity() const; void setCountry(const char* country); const char* getCountry() const; void setUniversity(const char* university); const char* getUniversity() const; void setGroup(const char* group); const char* getGroup() const; const char* studentToString() const; private: int id; char name[MAX_SIZE]; char birthDate[BIRTDATE]; char phone[PHONE]; char city[MAX_SIZE]; char country[MAX_SIZE]; char university[MAX_SIZE]; char group[MAX_SIZE]; }; Student::Student(int id, const char* name, const char* birthDate, const char* phone, const char* city, const char* country, const char* university, const char* group) : id(id) { setName(name); setBirthDate(birthDate); setPhone(phone); setCity(city); setCountry(country); setUniversity(university); setGroup(group); cout << "\n Create student: " << this << endl; } Student::~Student() { cout << "\n Delete student: " << this << endl; } void Student::setId(int id) { this->id = id; } int Student::getId() const { return id; } void Student::setName(const char* name) { strncpy(this->name, name, MAX_SIZE - 1); this->name[MAX_SIZE - 1] = '\0'; } const char* Student::getName() const { return name; } void Student::setBirthDate(const char* birthDate) { strncpy(this->birthDate, birthDate, MAX_SIZE - 1); this->birthDate[MAX_SIZE - 1] = '\0'; } const char* Student::getBirthDate() const { return birthDate; } void Student::setPhone(const char* phone) { strncpy(this->phone, phone, MAX_SIZE - 1); this->phone[MAX_SIZE - 1] = '\0'; } const char* Student::getPhone() const { return phone; } void Student::setCity(const char* city) { strncpy(this->city, city, MAX_SIZE - 1); this->city[MAX_SIZE - 1] = '\0'; } const char* Student::getCity() const { return city; } void Student::setCountry(const char* country) { strcpy_s(this->country, country); //this->country[MAX_SIZE - 1] = '\0'; } const char* Student::getCountry() const { return country; } void Student::setUniversity(const char* university) { strncpy(this->university, university, MAX_SIZE - 1); this->university[MAX_SIZE - 1] = '\0'; } const char* Student::getUniversity() const { return university; } void Student::setGroup(const char* group) { strncpy(this->group, group, MAX_SIZE - 1); this->group[MAX_SIZE - 1] = '\0'; } const char* Student::getGroup() const { return group; } const char* Student::studentToString() const { static char str[MAX_L]; sprintf(str, "ID: %d\nName: %s\nBirth Date: %s\nPhone: %s\nCity: %s\nCountry: %s\nUniversity: %s\nGroup: %s\n", id, name, birthDate, phone, city, country, university, group); return str; } int main() { Student student{ 1, "Vova"}; cout << student.studentToString() << endl; Student student1{ 2, "Alice", "02/03/2000" }; cout << student1.studentToString() << endl; Student* pStud = new Student(3, "Bob", "15/08/1999", "9876543210", "Los Angeles", "USA", "Stanford", "CS102"); cout << pStud->studentToString() << endl; delete pStud; return 0; }