标签:std cout virtual void namespace 多态 笔记 C++ day13
1、多态的基本概念
#include<iostream> using namespace std; //多态 class Animal { public: //虚函数 virtual void speak() { cout << "动物在说话" << endl; } }; //猫类 class Cat :public Animal { public: void speak() { cout << "小猫在说话" << endl; } }; //狗类 class Dog :public Animal { public: void speak() { cout << "小狗在说话" << endl; } }; //执行说话的函数 //地址早绑定 在编译阶段确定函数地址 //如果想执行让猫说话,这个函数的地址就不能提前绑定,需要在运行阶段进行绑定,也就是地址晚绑定 //动态多态满足条件 //1、有继承关系 //2、子类重写父类的虚函数 //重写:函数返回值类型 函数名 参数列表完全相同 才叫重写 //动态多态的使用 //1、父类的指针或者引用 指向子类的对象 void doSpeak(Animal& animal) //Animal& animal =cat; { animal.speak(); } void test01() { Cat cat; doSpeak(cat); Dog dog; doSpeak(dog); } int main() { test01(); system("pause"); return 0; }
标签:std,cout,virtual,void,namespace,多态,笔记,C++,day13 来源: https://www.cnblogs.com/lq0710/p/16683836.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。