其他分享
首页 > 其他分享> > 实验五 类的继承、派生和多态(2)

实验五 类的继承、派生和多态(2)

作者:互联网

一、验证性实验
1. 在多层继承中,派生类中出现与基类同名成员时,通过对象名.成员名的方式,访问的成员什么?
      对象名.成员名:派生类对象
2. 通过基类指针访问派生类对象时,基类中成员函数有无关键字virtual,访问的成员分别是什么?
       基类指针:有关键字时访问派生类,无关键字访问基类对象
 
 
二、编程练习
1、设计并实现一个机器宠物类MachinePets

#include<iostream>
#include<string>
using namespace std;

class MachinePets{
    public:
        MachinePets(const string cookie):nickname(cookie){}
        string getNickname() const{return nickname;}
        virtual string talk(){return "wang wang~";}
    private:
        string nickname;
};
class PetCats:public MachinePets{
    public:
        PetCats(const string s):MachinePets(s){}
        virtual string talk(){return "miao wu~";}
};
class PetDogs:public MachinePets{
    public:
        PetDogs(const string s):MachinePets(s){}
        virtual string talk(){return "wang wang~";}
};

void play(MachinePets *p) {cout<<p->getNickname()<<" "<<"says"<<" "<<p->talk()<<endl;}

int main(){
    PetCats cat("miku");
    PetDogs dog("da huang");
    
    play(&cat);
    play(&dog);
    
    return 0;
}

运行结果如下:

标签:return,string,派生,继承,多态,MachinePets,基类,public,wang
来源: https://www.cnblogs.com/fearless04/p/10967406.html