源代码:
MachinePets.h:
#ifndef MACHINEPETS_H #define MACHINEPETS_H #include <string> using namespace std; class MachinePets{ public: MachinePets(const string s); string getNickname() const; virtual string talk()=0; private: string nickname; }; #endif
MachinePets.cpp:
#include "MachinePets.h" #include <string> using namespace std; MachinePets::MachinePets(const string s):nickname(s){ } string MachinePets::getNickname()const{ return nickname; }
PetCats.h:
#ifndef PETCATS_H #define PETCATS_H #include <string> using namespace std; #include "MachinePets.h" class PetCats:public MachinePets{ public: PetCats(const string s); string talk(); }; #endif
PetCats.cpp:
#include <string> #include "PetCats.h" using namespace std; PetCats::PetCats(const string s):MachinePets(s){ } string PetCats::talk(){ return "miao wu~"; }
PetDogs.h:
#ifndef PETDOGS_H #define PETDOGS_H #include <string> #include "MachinePets.h" using namespace std; class PetDogs:public MachinePets{ public: PetDogs(const string s); string talk(); }; #endif
PetDogs.cpp:
#include <string> #include "PetDogs.h" using namespace std; PetCats::PetDogs(const string s):MachinePets(s){ } string PetDogs::talk(){ return "wang wang~"; }
main.cpp:
#include <iostream> #include <string> using namespace std; #include "MachinePets.h" #include "PetCats.h" #include "PetDogs.h" void play(MachinePets *x){ cout<<x->getNickname()<<"says"<<x->talk()<<endl; } int main() { PetCats cat("miku"); PetDogs dog("dahuang"); play(&cat); play(&dog); return 0; }
运行截图:

本文介绍了一种使用C++实现的宠物机器人对话系统,通过继承和多态,创建了能够发出特定声音的猫和狗类。主要展示了如何设计类结构,实现虚拟宠物的基本交互。
516

被折叠的 条评论
为什么被折叠?



