C++ 实验五

#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;
}
main.cpp
#include"MachinePets.h"
#include<string>
using namespace std;

MachinePets :: MachinePets(const string s):nickname(s){
    }
  string MachinePets :: getNickname( ) {
      return nickname;
  }
MachinePets.cpp
#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
MachinePets.h
#include "MachinePets.h"
#include"PetCats.h"
#include<string>
using namespace std;

PetCats ::PetCats(const string s) : MachinePets(s) {
}
string PetCats ::talk() {
    return "miao wu~";
}
PetCats.cpp
#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
PetCats.h
#include"MachinePets.h"
#include"PetDogs.h"
#include<string>
using namespace std;

PetDogs::PetDogs(const string s) :MachinePets(s) {
}
string PetDogs::talk() {
    return "wang wang~";
}
PetDogs.cpp
#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
PetDogs.h

猜你喜欢

转载自www.cnblogs.com/lyc1103/p/10958083.html
今日推荐