实验五

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

class MachinePets{
    public:
        MachinePets(const string s):nickname(s) {
        }
        virtual string talk() const=0;
        
        string Getnickname(){
            return nickname;
        }
    private:
        string nickname;
};

class PetCats:public MachinePets {
    public:
        PetCats(const string s):MachinePets(s){
        }
        string talk() const{
            return "says miao wu~"; 
        }
};

class PetDogs:public MachinePets {
    public:
        PetDogs(const string s):MachinePets(s){
        }
        string talk() const{
            return "says wang wang~"; 
        }
};

void play(MachinePets &m){
    std::cout<<m.Getnickname()<<ends<<m.talk()<<endl;
}

int main() {
PetCats cat("miku");
PetDogs dog("da huang");
play(cat); // 按照play()形参,传递参数
play(dog); // 按照play()形参,传递参数
return 0;
}


一开始的时候对抽象类掌握的非常不牢固,也没有用到抽象类,以及虚基类,掌握得不是很好,后来修修改改,并在同学的帮助下改正。

https://www.cnblogs.com/cjj1/p/10967941.html
https://www.cnblogs.com/csc13813017371/p/10966842.html
https://www.cnblogs.com/jessi-wu1005/p/10961379.html



 

posted @ 2019-06-03 22:15  agsjg  阅读(94)  评论(3)    收藏  举报