当前位置: 首页 > news >正文

wordpress主题viue安装北京网站优化技术

wordpress主题viue安装,北京网站优化技术,郑州比较好的外贸公司,免实名域名购买指向派生类的基类指针、强转为 void* 再转为基类指针、此时调用虚函数会发生什么? 1、无论指针类型怎么转,类对象内存没有发生任何变化,还是vfptr指向虚函数表,下面是成员变量,这在编译阶段就已经确定好了&#xff1b…

指向派生类的基类指针、强转为 void* 再转为基类指针、此时调用虚函数会发生什么?

1、无论指针类型怎么转,类对象内存没有发生任何变化,还是vfptr指向虚函数表,下面是成员变量,这在编译阶段就已经确定好了;
在这里插入图片描述

2、运行时,会根据vfptr找到vftable,然后确定类型为派生类(RTTI运行时类型识别),这是调用虚函数是查表来调用的,在编译的时候派生类的虚函数早就把基类的虚函数给覆盖了,调用的肯定是派生类的虚函数
3、整个调用过程如下
编译器进行编译成汇编代码时,先看到show函数,show函数是虚函数,虚函数编译时就不能直接call show了,而是通过bfptr找到虚函数标,大概过程如下
mov ecx dword ptr[p3] //找到vfptr
mov eax dword ptr[ecx] //把vfptr指向的地址,也就是vftable[0]的地址给寄存器eax,eax里存放的是派生类show函数的地址
call eax //调用派生类的show

以上三句汇编才是虚函数产生多态的核心

在这里插入图片描述

#include <iostream>
#include <memory>#include<iostream>
using namespace std;//基类
class Base
{
public:virtual void show(){cout << "base ::show" << endl;}
public:int ma;
};
class Derived:public Base
{
public:virtual void show(){cout << "Derived ::show" << endl;}
public:int mb;
};int main()
{Base* p1 = new Derived;p1->show();void* p2 = (void*)p1;Base* p3 = (Base*)p2;p3->show();return 0; ;
}

在这里插入图片描述

http://www.laogonggong.com/news/33600.html

相关文章:

  • 建筑导航网站网络营销的发展现状及趋势
  • 学做系统的网站私域流量营销
  • github做网站空间沈阳网站关键词排名
  • 建设银行网站注销吗企业网络营销推广案例
  • 模板制作方法佛山网络公司 乐云seo
  • 汕头市国外网站建设公司关键词优化课程
  • 网站设计的标准如何建一个自己的网站
  • 做ppt的软件怎么下载网站seo高手是怎样炼成的
  • 南宁微信网站制作线上推广具体应该怎么做
  • 中文搜索引擎网站郑州百度网站快速优化
  • wordpress作者专栏背景怎么改学生班级优化大师
  • admin后台管理系统seo关键词如何设置
  • 公司简介模板范本网站seo基础
  • 有哪些做家教网站seo怎么刷关键词排名
  • 北京网站开发建设 58同城河南网站seo靠谱
  • 镇江网页汕头seo外包平台
  • 网站怎么做任务赚钱吗广告推广方案
  • 怎么办个人网站免费游戏推广平台
  • 给人做传销网站奉化首页的关键词优化
  • 企业如何 建设好自己的网站企业网站seo方案
  • 建设商城网站费用口碑好网络营销电话
  • 《网站建设教程360搜索优化
  • 9个成功的市场营销案例seo专员很难吗
  • 宁波做网站网站推广优化的原因
  • 网站做细分领域迅速上排名网站优化
  • 做中学学中做网站seo建站公司推荐
  • 织梦网站变成手机站seo优化推广软件
  • 按钮特效网站网络营销推广公司简介
  • 珠宝网站建设百度手机点击排名工具
  • iis网站服务被禁用今日重大财经新闻