实验5 类的继承、派生和多态(2)
1.设计并实现一个机器宠物类MachinePets。
#include<iostream> #include<string> using namespace std; class MachinePets { public: MachinePets() {} MachinePets(const string s) { nickname=s; } virtual string talk() { return 0; } string getnickname()const { return nickname; } private: string nickname; }; class PetCats:public MachinePets { public: PetCats(const string s):MachinePets(s) { } string talk() { return "miao wu~"; } }; class PetDogs:public MachinePets { public: PetDogs(const string s):MachinePets(s) { } 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()形参,传递参数 play(&dog); // 按照play()形参,传递参数 system("pause"); return 0; }
实验总结:了解了虚函数的使用,在编写这道题的时候也参考了验证性实验(2)。