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

科协网站建设的建议个人网站做交易类的赚钱吗

科协网站建设的建议,个人网站做交易类的赚钱吗,wordpress手机模板插件,自己想做一个网站怎么做C的多态分为动态多态和静态多态#xff0c;其中静态多态主要靠重载和模板来实现#xff0c;而动态多态则主要靠继承来实现了。 那么静态和动态#xff0c;怎么算静#xff0c;怎么算动呢#xff1f;静态多指编译期能决定的事情#xff0c;而动态多指运行时才决定的事情。… C的多态分为动态多态和静态多态其中静态多态主要靠重载和模板来实现而动态多态则主要靠继承来实现了。 那么静态和动态怎么算静怎么算动呢静态多指编译期能决定的事情而动态多指运行时才决定的事情。例如重载在编译期生成符号的时候就已经确定不同的函数了而继承的重写override则是在运行到具体的代码位置确认指针内部的虚函数表指向的函数地址时才知道执行哪个函数被称为动态多态。 虚函数表指针 虚函数表指针指向虚函数表虚函数表每个类一个如果是单继承的话子类和父类的虚函数表会合体下面是一个简单的例子 class Father { public:virtual void fatherfunction() {cout fatherfunction endl;} };class Child : public Father { public:virtual void childfunction() {cout childfunction endl;} };Child c; Father f; 用过调试器查看变量内部可以看到Child类的对象c中有父类的虚函数表指针但是自己的呢单纯一个父类对象也有自己的虚函数表指针为什么Child类的对象自己的虚表指针不见了呢 那么一个猜测就是子类的虚函数表和父类的虚函数表合体了这个猜测到底正不正确呢得想个办法验证一下 一般虚表指针存放在对象地址空间的头4位这里先取得上图中看到的Father的vptr指向的虚表虚表地址的获取需要获取虚表指针中存放的值。 cout hex virtual table address: *(int *)(c) endl; 然后是获得fatherfunction函数指针的地址 cout hex fatherfunction address: (int *)*(int *)(c) endl; typedef void(*FUN)();Child c; cout hex virtual table address: *(int *)(c) endl; cout hex fatherfunction address: (int *)*(int *)(c) endl;FUN father_func (FUN)*((int *)*(int *)(c));FUN child_func (FUN)*((int *)*(int *)(c) 1);father_func(); child_func(); 得到的结果如下图所示 虚函数表中存放的紧接着father_func函数地址的下一个就是child_func的地址因此是合并了。 PS简单解释一下取函数指针的代码 续表为手误是虚表。图不好改就不改了 静态函数不能是虚函数 静态成员不属于任何对象所以就算加上了virtual也没有意义 静态函数没有this指针虚函数表存在于对象的地址空间使用对象的this指针访问但是静态函数没有this指针故也无法访问虚函数表。 静态函数不能是const也不能是volatile const成员函数要求使用者为const类对象再换一个说法就是要求this指针为const但是静态函数没有this指针故使用const关键字修饰静态函数毫无意义 PSvolatile是一个关键字用来表示当前语句不会被编译器优化且要求每次直接读值 多继承的时候虚表指针表现 多继承时对象内部会有多个虚表指针指向多个虚函数表如果自己也能继续继承那么自己的续表会和第一个虚表合体虚表合体这个在上面已经描述过了多个多继承的话也会合并是会和内存空间的第一个虚表合并。 class Father { public:virtual void fatherfunction() {cout fatherfunction endl;} };class Mother { public:virtual void motherfunction() {cout motherfunction endl;} };class Child : public Father, public Mother { public:virtual void childfunction() {cout childfunction endl;} }; 把类的继承关系改成这样让Child类继承自Father和Mother此时Child的对象c中有几个虚表指针 答案是两个分别是两个类的虚表指针此时为了判断合体还是用上面提到的方法也能成功发现子类的虚表是存在头4个字节的虚表指针所指向的虚表内的。 而这个虚表指针的先后顺序和声明继承的顺序一致public Mother如果在public Father之前的话就会变成如下图所示 转载于:https://www.cnblogs.com/lenomirei/p/11384480.html
http://www.zqtcl.cn/news/756291/

相关文章:

  • 12380 举报网站建设优秀个人网站
  • 简洁网站模板素材用wordpress上传源砖
  • 高密做网站电影html网页模板设计素材
  • 湖北网络营销网站襄阳网站建设-飞鱼网络
  • 想更新公司网站怎么做关于网站开发的自我评价
  • 找建筑工作哪个网站好新增网站 备案
  • 格力网站的建设情况wordpress mysql 密码重置
  • 网站access数据怎么做高端品牌网站建设的目的
  • 外贸买家网站凯里网站建设流程
  • 网站一年要多少钱国外的建筑设计网站
  • 手游发号网站模板ic外贸网站建设
  • 珠海网站制作案例tp5 商城网站开发
  • 母婴用品网站建设规划上海市建设工程 安全协会网站
  • 做室内设计特别好的网站网站服务器租用恒创
  • 慕课网站开发文档wordpress上传到空间
  • 行业垂直网站开发漳州最便宜的网站建设价格
  • 高级网站设计效果图网站设计制作哪些
  • 惠山区住房和建设厅网站营销推广方式都有哪些
  • 做网贷网站多少钱wordpress首页短代码
  • 网站网格湖南网页
  • 做网站的知名品牌公司用ps切片做网站
  • 中学网站模板下载番禺外贸网站建设
  • 常州网站seo代理加盟郑州浩方网站建设智联招聘
  • 小型网站制作网站开发做什么费用
  • seo网站论文社交app开发公司
  • 企业宣传网站建设图示《高性能网站建设》
  • 福州志愿者官方网站怎么做erp管理系统介绍
  • 高端网站建设费用情况广州开发区控股集团有限公司
  • 精湛的网站设计云南网招聘
  • 南昌网站建设公司行情Wordpress添加分页按钮