#include<iostream> #include<string> #include"MachinePets.h" #include"PetCats.h" #include"PetDogs.h" using namespace std; 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; }
#include"MachinePets.h" #include<string> using namespace std; MachinePets :: MachinePets(const string s):nickname(s){ } string MachinePets :: getNickname( ) { return nickname; }
#ifndef MACHINEPETS_H #define MACHINEPETS_H #include <string> using namespace std; class MachinePets { public: MachinePets(const string s); string getNickname(); virtual string talk() = 0; private: string nickname; }; #endif
#include "MachinePets.h" #include"PetCats.h" #include<string> using namespace std; PetCats ::PetCats(const string s) : MachinePets(s) { } string PetCats ::talk() { return "miao wu~"; }
#ifndef PETCATS_H #define PETCATS_H #include"MachinePets.h" #include<iostream> #include <string> using namespace std; class PetCats :public MachinePets { public: PetCats(const string s); string talk(); private: string catname; }; #endif
#include"MachinePets.h" #include"PetDogs.h" #include<string> using namespace std; PetDogs::PetDogs(const string s) :MachinePets(s) { } string PetDogs::talk() { return "wang wang~"; }
#ifndef PETDOGS_H #define PETDOGS_H #include"MachinePets.h" #include<iostream> #include <string> using namespace std; class PetDogs :public MachinePets { public: PetDogs(const string s); string talk(); private: string dogname; }; #endif
原文:https://www.cnblogs.com/lyc1103/p/10958083.html