cpp:stl:student
This is an old revision of the document!
<code cpp Student.hpp> #ifndef _STUDENT_HPP_ #define _STUDENT_HPP_ #include<cstring> #include <iostream>
class Student { public:
char *name; int aem;
Student(); Student(const char *name, int aem); Student(const Student& ); ~Student(); friend std::ostream& operator<<(std::ostream& out, const Student & st); bool operator>(const Student& st) const; Student& operator=(const Student& st);
};
Student::Student(const char *name, int aem) {
this->name = new char [strlen(name) + 1]; strcpy(this->name, name); this->aem = aem; std::cerr << "Argu Construct : " << *this << std::endl;
}
Student::Student(const Student& st) {
name = new char [strlen(st.name) + 1]; strcpy(name, st.name); aem = st.aem; std::cerr << "Copy Construct : " << *this << std::endl;
}
Student::Student() {
this->name = nullptr; this->aem = 0;
}
Student::~Student() {
if(name != nullptr) { std::cerr << "Destruct: " << *this << std::endl; delete []name; }
}
Student& Student::operator=(const Student& st) {
if(name != nullptr) delete name; name = new char [strlen(st.name) + 1]; strcpy(name, st.name); aem = st.aem; std::cerr << "Copy : " << *this << std::endl; return *this;
}
std::ostream& operator«(std::ostream& out, const Student& st) {
if(st.name != nullptr) out << st.name << " " << st.aem; return out;
}
bool Student::operator>(const Student& st) const {
if(aem > st.aem) return true; return false;
} #endif </code
cpp/stl/student.1590675018.txt.gz · Last modified: 2020/05/28 13:10 (external edit)