Я в основном начинаю изучать c ++ с помощью самостоятельной работы, поэтому я публикую некоторые из моих работ, которые я не понял. я не знаю, где я делаю неправильно, потому что конструктор глубокого копирования работает с константной переменной или нет? я делаю неправильно, пожалуйста, попробуйте объяснить подробно и помочь учиться. спасибо
#include <iostream>
#include <string.h>
class Student{ //student class with constant variable
private:
const int roll;
char *name;
float grade;
public:
Student(int num):roll(num),name("NULL"),grade(0.0){}; /* for const variable initializer.*/
Student(const Student &obj )
{
cout<<"copy Constructor "<<endl;
int stSize;
stSize=strlen(obj.name);
name= new char[stSize+1];
strcpy(name,obj.name);
grade=obj.grade;
}
void setStudent(char *nam,float grd){
cout<<"Setting Student"<<endl;
int stSize=strlen(nam);
name=new char[stSize+1];
strcpy(name,nam);
grade=grd;
}
void getStudent()const{
cout<<"Roll Number is :"<<roll<<endl;
cout<<"Student Name is :"<<name<<endl;
cout<<"Grade is :"<<grade<<endl;
}
~Student(){
delete[] name;
}
};
int main()
{
Student a(10);
a.setStudent("Adnan", 3.2);
a.getStudent();
Student b(12)=a; // this is where copy constructor should be shown.
Student c(11);
c.getStudent();
b.getStudent();
return 0;
}