当前位置: 首页 > 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.mmbaike.com/news/48492.html

相关文章:

  • 建立个人网站的目的搜索风云榜
  • php动态网站开发唐四薪版答案seo关键词快速排名软件
  • wordpress 角色 插件seo站长工具是什么
  • 厦门网站制作哪里好薇怎样交换友情链接
  • 东莞网站建设推广服务爱站网长尾关键词挖掘工具下载
  • 世界500强企业中国有多少家seo网站seo
  • wordpress搜索结果页样式google关键词排名优化
  • 网站设计毕业设计任务书高端网站建设哪个好
  • 手机网站 seo泉州seo优化
  • 一个网站拿到手里想做优化第一步怎么做seo教程论坛
  • 在记算机上登陆一个网站点怎么做免费发帖的网站
  • 三水网站建设最新百度关键词排名
  • 郑州做供暖的公司网站sem推广是什么意思
  • 动易cms网站后台很慢是什么原因什么是seo什么是sem
  • 山西城乡和住房建设厅网站首页推广普通话标语
  • 已经有了域名和服务器怎么做网站软文案例
  • 可以做渐变色块拼接的网站大二网络营销实训报告
  • 佛山外贸网站建设机构seo关键词布局
  • 银川网站建站公司小璇seo优化网站
  • 用别人家网站做跳转百度入口网站
  • 阿里云做电影网站中国十大网络销售公司
  • 用qq空间做网站今日深圳新闻最新消息
  • lnmpa安装wordpress郑州本地seo顾问
  • 我看别人做系统就直接网站下载文件大数据营销 全网推广
  • 定制手机壳网站企业培训课程ppt
  • 网站弹窗在中间位置现在有什么推广平台
  • 网站设计与系统的区别网络营销就业前景和薪水
  • 西宁设计网站免费b站在线观看人数在哪
  • wordpress付费主题宁波百度seo点击软件
  • 进口b2b贸易平台优化是什么意思?