class Student
{
public:
// Constructor (non-default)
Student(const char * login, int age, int year, float GPA);
// Explicit (not compiler-generated) copy constructor
Student(const Student& student);
// Explicit (not compiler-generated) assignment operator
Student& operator=(const Student& student);
// Destructor (not compiler-generated)
~Student();
// Mutators (settors) are not const
void set_login(const char* login);
void set_age(int age);
void set_year(int year);
void set_GPA(float GPA);
// Accessor (gettors) are const
int get_age() const;
int get_year() const;
float get_GPA() const;
const char *get_login() const;
// Nothing will be modified by display
void display() const;
private:
char *login_;
int age_;
int year_;
float GPA_;
// Called by copy constructor and assignment operator
void copy_data(const Student& rhs);
};