码迷,mamicode.com
首页 > 编程语言 > 详细

c++实验5

时间:2019-06-01 23:07:03      阅读:146      评论:0      收藏:0      [点我收藏+]

标签:ret   sys   iostream   vat   练习   图片   没有   虚函数   ima   

Part3 简单编程练习

#include<string>
#include<iostream>
using namespace std;
class MachinePets {
public:
    MachinePets(const string s);
    virtual string talk()=0;
    string getNickname() {
        return nickname;
    }
private:
    string nickname;
};

class PetCats:public MachinePets{
 public:
    PetCats(const string s);
    string talk();

};

class PetDogs :public MachinePets {
public:
    PetDogs(const string s);
    string talk();
};

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

PetCats::PetCats(const string s):MachinePets(s) {
}
string PetCats::talk()
{
    string a = "miao wu~";
    return a;
}
PetDogs::PetDogs(const string s) :MachinePets(s) {
}

string PetDogs::talk()
{
    string a = "wang wang~";
    return a;
}

void play(MachinePets *p)
{
    cout << p->getNickname() << "says" << p->talk() << endl;
}
int main() {
    PetCats cat("miku");
    PetDogs dog("da huang");
    play(&cat);
    play(&dog);
    system("pause");
    return 0;
}

技术图片

实验总结:

1.纯虚函数作用:在验证性部分,基类没有使用虚函数时,使用基类指针调用派生类成员函数,始终只有基类函数在起作用。而使用了纯虚函数之后,基类类型的指针,如果指向的是派生类的对象,那么它就可以访问这个函数,从而执行的是派生类中的函数。需要注意的是,纯虚函数是不能被调用的。

2.在有多个不同的类使用同一名称的函数时,适合用纯虚函数。

3.在编程练习部分,MachinePets(s)调用时写在函数体里不能被调用。

c++实验5

标签:ret   sys   iostream   vat   练习   图片   没有   虚函数   ima   

原文地址:https://www.cnblogs.com/qiuqiuwr/p/10961208.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!