C++基类与派生类的转换

来源:互联网 发布:m1136mfp扫描软件 编辑:程序博客网 时间:2024/06/04 01:37
**#include <iostream>#include <strings.h>#include <cstring>using namespace std;class Student {public:    Student(int,string,float);    void display();private:    int num;    string name;    float score;};Student::Student(int n,string nam,float s){    num=n;    name=nam;    score=s;}void Student::display(){    cout<<endl;    cout<<"num:"<<num<<endl;    cout<<"name:"<<name<<endl;    cout<<"score:"<<score<<endl;}class Graduate:public Student{public:    Graduate(int,string,float,float);    //子类的构造函数只需要在定义的时候进行对基类的初始化即可。    void display();private:    float pay;     //工资};Graduate::Graduate(int n,string nam,float s,float p):Student(n,nam,s),pay(p){}void Graduate::display() {    Student::display();    cout<<"pay="<<pay<<endl;}int main(){    Student stud(1001,"Li",87.5);    Graduate grad(2001,"Wawng",98.5,563.5);    Student *pt=&stud;    pt->display();    pt=&grad;    //将子类的地址赋给指向基类的指针    pt->display();}**
**/home/andrew/文档/Clion/untitled5/cmake-build-debug/untitled5num:1001name:Liscore:87.5num:2001name:Wawngscore:98.5Process finished with exit code 0**
0 0