为什么我给Big_Student赋予了新值但是show出来的还是构造器里面的值?(小白)

#include
#include
using namespace std;
class Student{
string Name;
int age;
int id;
int Gread;
public:
Student(string N="DL",int a=1,int i=1,int G=1):Name(N),age(a),id(i),Gread(G){
};
virtual void SayHello(){};
void showName(){
cout<<Name;
}
string returnn(){
return Name;
}
int returnA(){
return age;
}
int returni(){
return id;
}
int returnG(){
return Gread;
}
virtual ~Student(){cout<<"学生已经死亡";};
};
class Big_Student:public Student{
string classname;
Student S1;
public:
Big_Student(Student &S,string classn):S1(S),classname(classn){
cout<<"构造一个学生!"<<endl;
};
void showSudent(){
cout<<"Name="<<returnn()<<endl;
cout<<"age="<<returnA()<<endl;
cout<<"id="<<returni()<<endl;
cout<<"Gread="<<returnG()<<endl;
}
void SayHello(){
showName();
cout<<"向老师说你好!"<<endl;
}
};
void main(){
Student S1("张三",15,55,99);
Big_Student Stud1(S1,"西华大学");
Stud1.showSudent();
cout<<"----------------------"<<endl;
Stud1.SayHello();
system("pause");
}图片说明

 Student S1("张三",15,55,99);   //这里缺失改变了默认值

    Big_Student Stud1(S1,"西华大学");  //这里的赋值改变了   Big_Student 里面的S1值

    Stud1.showSudent();  //函数调用,如果不指明谁调用,当然是是默认值,所有需要指明S1.S1.returnA(),



 class Student{
    string Name;
    int age;
    int id;
    int Gread;
public:
    Student(string N="DL",int a=1,int i=1,int G=1):Name(N),age(a),id(i),Gread(G){
    };
    virtual void SayHello(){};
    void showName(){
        cout<<Name;
    }
    string returnn(){
        return Name;
    }
    int returnA(){
        return age;
    }
    int returni(){
        return id;
    }
    int returnG(){
        return Gread;
    }
    virtual ~Student(){cout<<"学生已经死亡";};
};
class Big_Student:public Student{
    string classname;
    Student S1;
public:
    Big_Student(Student &S,string classn):S1(S),classname(classn){
        cout<<"构造一个学生!"<<endl;
    };
    void showSudent(){
        cout<<"Name="<<S1.returnn()<<endl;   //S1只是一个变量,在构造时已经赋值,如果returnn()的话当然还是默认值,这里需要指明谁在调用
        cout<<"age="<<S1.returnA()<<endl;
        cout<<"id="<<S1.returni()<<endl;
        cout<<"Gread="<<S1.returnG()<<endl;
    }
    void SayHello(){
        S1.showName();
        cout<<"向老师说你好!"<<endl;
    }
};
void main()
{
    Student S1("张三",15,55,99);
    Big_Student Stud1(S1,"西华大学");
    Stud1.showSudent();
    cout<<"----------------------"<<endl;
    Stud1.SayHello();
    system("pause");
}