c++实验5
Posted qiuqiuwr
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c++实验5相关的知识,希望对你有一定的参考价值。
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的主要内容,如果未能解决你的问题,请参考以下文章
此 Canon SDK C++ 代码片段的等效 C# 代码是啥?
我的Android进阶之旅NDK开发之在C++代码中使用Android Log打印日志,打印出C++的函数耗时以及代码片段耗时详情