#include using namespace std; class Student { private: string id; //Memory will be allocated statically string name; //Memory will be allocated statically double gpa; public: //Default constructor Student():id(), name(), gpa(0.0) {} //Using default constructor of string class for 'id' and 'name' member variables //Constructor Student(const string &id, const string &name, double gpa): id(id), name(name), gpa(gpa) {} //Using copy constructor of string class for 'id' and 'name' member variables // Copy constructor Student(const Student& other):id(other.id), name(other.name),gpa(other.gpa) {} //Using copy constructor of string class for 'id' and 'name' member variables //Copy assignment Student& operator= (const Student& other) { if(this == &other) { return *this; } //Using copy assignment of string class for 'id' and 'name' member variables id = other.id; name = other.name; gpa = other.gpa; return *this; } //Move constructor Student(Student&& temp): id(temp.id), name(temp.name), gpa(temp.gpa) { //Using copy constructor of string class for 'id' and 'name' member variables } //Move assignment Student& operator= (Student&& temp) { if(this == &temp) { return *this; } //Using copy assignment of string class for 'id' and 'name' member variables id = temp.id; name = temp.name; gpa = temp.gpa; return *this; } //Destructor ~Student(){ cout<<"Student destructor..."<