R5-1根据所定义的基类,完成派生类的定义。

#include <iostream>
#include<string>
using namespace std;
class Student                             
 {public:                                 
   Student(int n, string nam )            
    {num=n;
     name=nam;
    }
   void display()                         
    {cout<<"num:"<<num<<endl;
     cout<<"name:"<<name<<endl;
    }
  protected:                               
    int num;                               
    string name;
};

class Student1: public Student      //公有继承Student        
 {public:
   
 Student1(int n,string nam,int a):Student(n, nam) //age是新增私有数据成员     

    {age=a; }                        
   void show( )                              
    {display();                             
     cout<<"age: "<<age<<endl;
    }
   private:                                 
    int age;                                
  };

class Student2:public Student1        
 {public:
    
Student2(int n,string nam,int a, int s):Student1(n,nam,a)   //score是新增私有数据成员   

    {score=s;}
   void show_all()                             
    {show();                                    
     cout<<"score:"<<score<<endl;             
    }
  private:
   int score;                               
 };

int main( )
 {Student2 stud(10010,"Li",17,89);
  stud.show_all( );                           
  return 0;
 }

运行结果如下:

num:10010
name:Li
age: 17
score:89

PTA涉及;

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
题2】定义一个基类Shape,有成员函数:calArea(),但什么都不做,返回0。在此基础上公有派生出Rectangle(矩形)和Circle,添加相应的数据成员(成员均为double型),重新定义calArea()计算对象的面积。 主函数中,分别定义一个Rectangle和Circle对象,初始值由键盘输入。(1)通过对象调用相应的calArea(),输出结果;(2)定义Shape对象指针,分别赋以Rectangle和Circle的对象地址,通过指针调用calArea(),输出结果;(3)定义Shape对象引用r,以Rectangle和Circle的对象初始化r,通过引用r调用calArea(),输出结果。 PI取值:3.1415926 3 6 3 通过Rectangle对象调用calArea():18 通过Circle对象调用calArea():28.2743 基类指针指向Rectangle对象,调用calArea():0 基类指针指向Circle对象,调用calArea():0 Rectangle对象初始化基类对象引用r,r调用calArea():0 Circle对象初始化基类对象引用r,r调用calArea():0 2 5 2 通过Rectangle对象调用calArea():10 通过Circle对象调用calArea():12.5664 基类指针指向Rectangle对象,调用calArea():0 基类指针指向Circle对象,调用calArea():0 Rectangle对象初始化基类对象引用r,r调用calArea():0 Circle对象初始化基类对象引用r,r调用calArea():0 1 5 4 通过Rectangle对象调用calArea():5 通过Circle对象调用calArea():50.2655 基类指针指向Rectangle对象,调用calArea():0 基类指针指向Circle对象,调用calArea():0 Rectangle对象初始化基类对象引用r,r调用calArea():0 Circle对象初始化基类对象引用r,r调用calArea():0
05-24
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值