
// File: student_constr.cpp
#include <cstring>
#include <iostream>
#include "student_constr.h"
using namespace std;

//////////////////////////////////////////////////////////

void Student::set_name(const char* nam)
{
   delete[] name;
   name = new char[strlen(nam)+1];
   strcpy(name,nam);
}

void Student::set_no(int n)
{
   no = n;
}

void Student::set_year_of_studies(int y)
{
   year_of_studies = y;
}

void Student::set_date(int d, int m, int y)
{
   RegistrationDate.set(d,m,y);
}


//////////////////////////////////////////////////////////

char* Student::get_name() const
{
   return name;
}

int Student::get_no() const
{
   return no;
}

int Student::get_year_of_studies() const
{
   return year_of_studies;
}

void Student::get_date(int& d, int& m, int& y) const
{
   RegistrationDate.get(d,m,y);
}

//////////////////////////////////////////////////////////

Student::~Student()
{
   cout << "Deleting student with name " << name << endl;
   delete[] name;
}

//////////////////////////////////////////////////////////

Student::Student(const char* nam)
{
   name = new char[strlen(nam)+1];
   strcpy(name,nam);
}

//////////////////////////////////////////////////////////

Student::Student(const Student& s)
   : RegistrationDate(s.RegistrationDate)
              // Copy constructor to be used (even
              // if not defined by the user).
              // If this is in comments, the default
              // constructor is used for initializing
              // the data member RegistrationDate
{
   name = new char[strlen(s.name)+1];
   strcpy(name,s.name);
   no = s.no;
   year_of_studies = s.year_of_studies;
   cout << "A student was just created by copying ... " << endl;
}

