实验五

 

 

part 2html

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

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

void play(PetCats *a)
{
    cout<<a->getNickname()<<a->talk()<<endl;
}
void play(PetDogs *a)
{
    cout<<a->getNickname()<<a->talk()<<endl;
}

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

结果:ios

 

总结:函数

一、若是用a.xxxxx,会出现[Error] request for member 'getNickname' in 'a', which is of pointer type 'PetCats*' (maybe you meant to use '->' ?);spa

二、在机房作的时候会出现cannot declare variable to be of abstract type的错误,和百度里解释的一一对应检查过了也没什么发现,过了几天在本身电脑重打一遍就正常运行了,也不太清楚咋回事;code

三、这个继承派生虚函数什么的,不太会分红好几个文件写哎。htm

 

实验四评论:blog

一、https://www.cnblogs.com/hongzai1206/p/10903128.html继承

二、https://www.cnblogs.com/jackyayue/p/10887554.htmlget

三、https://www.cnblogs.com/fifi1224/p/10895590.htmlstring

相关文章
相关标签/搜索