学习日志(十八)

虚函数和多态

1.多态

1.1概念理解【注意】

多态指是同一个行为的不同结果

静态联编:函数重载

动态联编:C++类的多态

多态实现的前提条件

1.父类必须存在和子类一样(除函数体外都相同)的函数,并且是虚函数

2.public继承才有多态

3.必须存在指针引用

1.2简单示例

1.2.1简单继承

#include <iostream>

#include <string>

using namespace std;

/*父类*/

classMM

{

public:

virtual void print0

{

cout <""父类虚函数" << end1;

}

void printData()

{

cout <<"父类普通函数"<< end1;

};

/*子类 */

class Boy:public MM

{

public:

void print()

{

cout <<"子类的print函数" << endl;

}

void printData()

{

cout << "子类的printData函数"<< end1;

}

private:

};

int main() {

//1.正常对象﹣-->就近原则

MM mm;

Boy boy; /*调用自身的函数*/

mm.printData();

1.2.2多级继承

#include <iostream>

#include <string>

using namespace std;

class A

{

public:

virtual void print()

{

cout<<"A"<< endl;

}

};

class B: public A

{

public:

void print()

{

cout<<"B"<< endl;

}

}:

class C :public B

{

public:

void print()

{

cout<< "C" << endl;

}

};

int main()

{

//虚函数被多层继承

B*pB=new C;

pB->print();

A* pA = newC; //隔代了【效果相同】

pA->print();

pA->A::print(); //使用了作用域限定符后,即不存在多态情形

return0;

}

全部评论

相关推荐

12月还被美团到店后端捞了,核心本地开发,现在都合并了,叫业务研发部。因为我的研究方向偏低层,怕和面试官没啥好聊的,专门复习了&nbsp;mysql&nbsp;和&nbsp;计算机基础。一面&nbsp;12.041.&nbsp;自我介绍2.&nbsp;能不能转&nbsp;java&nbsp;(我主要用C++、rust)3.&nbsp;问会不会线程池(其实懂原理,但没用过,说不会,面试官很好,表示很简单过去了可以学)4.&nbsp;问&nbsp;mysql&nbsp;事务&nbsp;ACID&nbsp;是什么怎么实现的5.&nbsp;mysql&nbsp;中的锁6.&nbsp;mysql&nbsp;联合索引怎么建立的7.&nbsp;判断是一个查询是不是可以走联合索引,就是最左查询原则8.&nbsp;问我们日常怎么实现乐观锁(说了CAS,&nbsp;面试官又问了ABA问题9.&nbsp;问学习新语言的过程10.&nbsp;问进程间通信方法11.&nbsp;根据项目说一下软件开发过程(从需求分析到详细设计)写题:1.&nbsp;第K大的数2.&nbsp;K个一组反转链表二面&nbsp;12.06没做自我介绍,感觉我的项目跟后端一点关系都没有,半个小时都是我自己在介绍我的项目。面试官很耐心的听了,但是因为他说很久不看低层了,所以很多东西也没听明白。。。写题:1-1亿的整数转换成汉语读法 123 ->&nbsp;一百二十三。没写过,中间零和末尾零有个边界条件没考虑hr面&nbsp;12.12没做自我介绍问自己的职业发展规划问项目中的困难,怎么解决的问offer情况问能不能提前实习问最近在看的技术反问#美团求职进展汇总##美团##后端##牛客创作赏金赛##ai智能作图#
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务