User Tools

Site Tools


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)