C++实验4-1

来源:互联网 发布:算法基础vb 编辑:程序博客网 时间:2024/06/05 11:35

一、问题及代码

#include <iostream>  #include <string>  using namespace std;  class Stu   //声明基类  {  public:      Stu(int n, string nam ):num(n),name(nam){}    void display( )    {cout<<"学号:"<<num<<endl;cout<<"姓名:"<<name<<endl;}protected:        //(*)访问权限为保护型的数据成员      int num;      //学生学号      string name;  //学生姓名  };  class StuDetail: public Stu              //声明派生类StuDetail  {  public:      //学生nam,学号n,a岁,家住ad,他的班长是nam1,学号n1      StuDetail(int n, string nam,int a, string ad,int n1, string nam1):Stu(n,nam),monitor(n1,nam1){age=a;addr=ad;}//派生类构造函数      void show( ){cout<<"学生信息:"<<endl;display();cout<<"年龄:"<<age<<endl;cout<<"住址:"<<addr<<endl;}//成员函数,输出学生的信息     void show_monitor( )   {  monitor.display();   }private:      Stu monitor;   //学生所在班的班长,班长是学生,是Stu类的成员      int age;       //学生年龄      string addr;   //学生的住址  };  int main( )  {      //学生张三,10010号,19岁,家住江西南昌,他的班长是李四,学号10001      StuDetail s(10010,"张三",19,"江西南昌",10001,"李四");      s.show( );                       //输出学生信息 cout<<"班长信息:"<<endl;    s.show_monitor();                //输出班长信息      return 0;  }  

二、运行结果

三、心得体会

在写基类和派生类的时候,要注意基类中的私有成员数据是不能被派生类直接调用的。

四、知识点总结

多个基类构造函数的执行顺序取决于定义派生类时规定的先后顺序,与派生类的成员初始化列表中的顺序无关。

0 0
原创粉丝点击