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

    xiaoxiao2021-03-25  135

    **#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/untitled5 num:1001 name:Li score:87.5 num:2001 name:Wawng score:98.5 Process finished with exit code 0 **
    转载请注明原文地址: https://ju.6miu.com/read-8020.html

    最新回复(0)