实验5

#pragma once
#include<string>
using namespace std;
class MachinePets
{
public:
    MachinePets(const string s);
    ~MachinePets();
    const string getNickname();
    virtual string talk();
private:
    string nickname;
};
MachinePets.h
#pragma once
#include<iostream>
#include<string>
using namespace std;
#include "MachinePets.h"
class PetCats :
    public MachinePets
{
public:
    PetCats(const string s);
    ~PetCats();
    string talk();
};
PetCats.h
#pragma once
#include "MachinePets.h"
#include<iostream>
#include<string>
using namespace std;
class PetDogs :
    public MachinePets
{
public:
    PetDogs(const string s);
    ~PetDogs();
    string talk();
};
PetDogs.h
#include "MachinePets.h"
#include<iostream>
#include<string>
using namespace std;


MachinePets::MachinePets(const string s):nickname(s)
{
}

MachinePets::~MachinePets()
{
}

const string MachinePets::getNickname()
{
    return string(nickname);
}

string MachinePets::talk()
{
    return string();
}
MachinePets.cpp
#include "PetCats.h"
#include<iostream>
#include<string>
using namespace std;





PetCats::PetCats(const string s):MachinePets(s)
{
}

PetCats::~PetCats()
{
}

string PetCats::talk()
{
    return string("miao wu~");
}
PetCats.cpp
#include "PetDogs.h"
#include<iostream>
#include<string>
using namespace std;


PetDogs::PetDogs(const string s):MachinePets(s)
{
}

PetDogs::~PetDogs()
{
}

string PetDogs::talk()
{
    return string("wang wang~");
}
PetDogs.cpp
#include"MachinePets.h"
#include"PetCats.h"
#include"PetDogs.h"
#include<iostream>
using namespace std;

void play(MachinePets* ptr) {
    cout << ptr->getNickname() << " says " << ptr->talk() << endl;
}

int main() {
    PetCats cat("miku");
    PetDogs dog("da huang");
    play(&cat);  // 按照play()形参,传递参数
    play(&dog);  // 按照play()形参,传递参数

    system("pause");
    return 0;

}
main.cpp

 

转载于:https://www.cnblogs.com/Yyaoyyy/p/10970767.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值