#include "String.h"
#define USER_DEFINEDx
class Student
{
public:
// Constructor
Student(const char * login, int age, int year, float GPA);
#ifdef USER_DEFINED
// Explicit copy constructor
Student(const Student& student);
// Explicit assignment operator
Student& operator=(const Student& student);
// Destructor
~Student(void);
#endif
// Mutators (settors) are rarely const
void set_login(const char* login);
void set_age(int age);
void set_year(int year);
void set_GPA(float GPA);
// Accessor (settors) are usually const
int get_age(void) const;
int get_year(void) const;
float get_GPA(void) const;
const char *get_login(void) const;
// Nothing will be modified by display
void display(void) const;
private:
String login_;
int age_;
int year_;
float GPA_;
void set_login(const String& login);
void copy_data(const Student& rhs);
};