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

深圳商城网站哪家做的好济宁百度推广公司

深圳商城网站哪家做的好,济宁百度推广公司,没有服务器怎么做网站,做网站 需要审核么指向派生类的基类指针、强转为 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.hkea.cn/news/431615/

相关文章:

  • 手机网站设计制作公司微信推广费用一般多少
  • 建设网站需要什么注册域名费用一般多少钱
  • 女性门户网站源码百度指数功能有哪些
  • 怎么帮公司做网站建设谷歌搜索引擎免费入口 香港
  • 请写出网站建设前期需要做的准备外贸定制网站建设电话
  • 南京门户网站建设网络营销优秀案例
  • 2012服务器如何做网站周口网络推广哪家好
  • 贵阳搜索玩的网站网络舆情软件免费入口
  • 前端自己写代码建网站要花多少钱游戏推广在哪里接活
  • 网站建设中+网页代码nba最新排名东西部
  • 东莞企业建设网站官网有限公司百度推广深圳分公司
  • 海外推广工作内容搜索引擎优化seo是什么
  • wordpress 发短信西安网络优化大的公司
  • dreamweaver个人网站南宁求介绍seo软件
  • 网站常用素材企业培训视频
  • 北京市通州区建设委员会网站网站新站整站排名
  • 太原网站推广只选中联传媒推广排名seo
  • 企业网站建设的常见流程为百度互联网营销顾问
  • 养殖企业网站网络营销策划名词解释
  • 如何进行电子商务网站推广?百度网盘app
  • 做情趣网站需要什么资质sem推广外包
  • 国外网站做任务赚钱的最近新闻有哪些
  • 建设部网站查资质中裕隆百度推广登录平台网址
  • 黄页网站大全免费山东网络推广优化排名
  • 网站文字代码常见的网络营销工具
  • 计算机毕设网站建设怎么改长沙网站设计拓谋网络
  • 类似红盟的网站怎么做aso优化推广
  • vs2013做网站怎样制作免费网页
  • b2c网站的开发无锡网络优化推广公司
  • 网站做视频在线观看营销活动推广方案