C++_练习—多态_验证vptr分布初始化

验证vptr分布初始化


 

vptr指针是从父类逐渐指向子类的虚函数表

 

 1 // 验证vptr分布初始化
 2 
 3 #include <iostream>
 4 
 5 using namespace std;
 6 
 7 class parent {
 8 public:
 9     parent(int a) {
10         this->a = a;
11         cout << "parent 构造函数 =  " << a << endl;
12         pri();
13     }
14 
15     virtual void pri(void) {
16         cout << "parent_pri =  "<< a << endl;
17     }
18 
19 private:
20     int a;
21 };
22 
23 class child :public parent {
24 public:
25     child(int b) :parent(6) {
26         this->b = b;
27         cout << "child 构造函数 = " <<  b << endl;
28         
29     }
30 
31     virtual void pri(void) {
32         cout << "child_pri  =  " << b << endl;
33     }
34 
35 private:
36     int b;
37 };
38 
39 int main(void)
40 {
41     child chi(2);  // 先调用父类构造函数,再调用子类构造函数,所以一共调用三次构造函数
42 
43     // 如果我在父类的构造函数调用 pri ,则他会调用父类的pri还是子类的 pri ???
44     parent *p = &chi;
45 
46     //结果调用的是父类的pri ,证明vptr指针是从父类逐渐指向子类的虚函数表
47 
48     system("pause");
49 
50     return 0;
51 }

 

 

笔记


 

转载于:https://www.cnblogs.com/panda-w/p/11381207.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/549636.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

分区表分区字段的update操作

默认情况下&#xff0c;oracle的分区表对于分区字段是不允许进行update操作的&#xff0c;如果有对分区字段行进update&#xff0c;就会报错——ORA-14402: 更新分区关键字列将导致分区的更改。但是可以通过打开表的row movement属性来允许对分区字段的update操作。 例&#xf…

OCP-052考试题库汇总(38)-CUUG内部解答版

You want to audit update statements that refer to USER1.DEPT.DNAME. Which type of auditing must you use? A)standard auditing B)mandatory auditing C)value-based auditing D)fine-grained auditing Answer: D 赵&#xff1a; Fine-Grained Audit(FGA)&#xff0c;精…

C++_练习—多态_纯虚函数与抽象类

纯虚函数与抽象类 含有纯虚函数的类&#xff0c;称为抽象基类&#xff0c;不可实列化。即不能创建对象&#xff0c;存在的意义就是被继承&#xff0c;提供族类的公共接口。 1 // 纯虚函数与抽象类2 3 #include <iostream>4 5 using namespace std;6 7 class shape {8 pub…

深入理解Linux内存映射机制

Author: wztEMail: [email]wztxsec.org[/email]Site: [url]http://www.xsec.org[/url]Date: 2008-6-13一. 绪 论二. X86的硬件寻址方法三. 内核对页表的设置四. 实例分析映射机制一. 绪 论我们经常在程序的反汇编代码中看到一些类似0x32118965这样的地址&#xff0c;操作系统中…

NetCore的配置管理(1)

学习NetCore的配置管理&#xff1b; 目录 命令行配置Json文件配置配置文件文本至C#对象实例的映射配置文件热更新总结命令行配置&#xff1a; 打开VS2017,新建NetCore控制台项目&#xff1b; 打开nuget包管理&#xff1b;添加Microsoft.Asp.NetCore.all&#xff0c;或者使用命令…

buffer busy waits

buffer busy waitshttp://metalink.oracle.com/metalink/plsql/ml2_documents.showDocument?p_database_idNOT&p_id34405.1当会话想要访问缓冲存储器中的数据块&#xff0c;而该数据块正在被其它会话使用时产生buffer busywaits事件。其它会话可能正在从数据文件向缓冲区存…

推荐几个EDA网站

http://www.cnblogs.com/jianyungsun/archive/2011/05/12/2044898.html 1. OPENCORES.ORG 这里提供非常多&#xff0c;非常好的PLD了内核&#xff0c;8051内核就可以在里面找到。 进入后&#xff0c;选择project或者由http//www.opencores.org/browse.cgi/by_category进入。 h…

SetupFactory安装制作心得

很多年前&#xff0c;因为仰慕Install Shield的鼎鼎大名&#xff0c;所以很是花了些功夫研究了一番&#xff0c;最后&#xff0c;基本上也可以打出很完善的包了&#xff0c;其中也不乏一些很有难度的事情&#xff0c;比如ODBC的打包等。但它实在太难用了&#xff0c;过上一段时…

Timus 1114. Boxes

Timus 1114. Boxes 要求计算出将两种颜色的球放到盒子中的各种组合的数目。1114. Boxes Time Limit: 0.6 second Memory Limit: 16 MB N boxes are lined up in a sequence (1 ≤ N ≤ 20). You have A red balls and B blue balls (0 ≤ A ≤ 15, 0 ≤ B ≤ 15). The red bal…

写作知识点

1.逻辑框架 2.起承转合 3.写作套路 4.述说,正述,倒序, 先说结果,分析原因,解决方案,,方案检查,紧急预案,预期结果 转载于:https://www.cnblogs.com/zeenzhou/p/11388739.html

Speerio Skinergy 'Image' is ambiguous 错误

使用BeyondCSS皮肤时报错&#xff1a;Could Not Load Skin: /Portals/0/Skins/beyondcss/1column_speerio.ascx Error: E:"Development"DotNetNuke"InstallArea"DotNetNuke_04.08.03_Source"Website"controls"Speerio"Skinergy"s…

Sql Server中自动序号的方法

第一种:使用identity函数增加临时表的方法 selectid identity(int,1,1),*into#tmp fromtableselect*from#tmp droptable#tmp 在SQL2005中新增了ROW_NUMBER()函数,给我们带来了很多方便,使用方法如下: SELECTid,ROW_NUMBER() OVER(orderbyid)asRowNumber FROMTable有一个方便,as…

js- 对象 toString 的结果 [ object Object ]

alert({ }); 输出 [ object Object ] 除了null和undefined之外&#xff0c;其他的类型(数值、布尔、字符串、对象)都有toString()方法&#xff0c;它返回相应值的字符串表现(并不修改原变量)。每个对象都有一个toString()方法。当该对象被表示为一个文本值时&#xff0c;或者一…

flex白板之图形绘制函数

图形的绘制 Graphics类提供了相关的方法&#xff1a; 1&#xff0c;清空画布 graphics.clear();2&#xff0c;设置画笔 graphics.lineStyle(thickness:Number NaN, color:uint 0, alpha:Number 1.0, pixelHinting:Boolean false, scaleMode:String "normal", ca…

程序员的工具箱奇形怪状

Snipaste 有道词典window客户端 转载于:https://www.cnblogs.com/ww01/p/11393340.html

请汇编高手注释的CompareText

这段代码是将两个字符串对象进行比较&#xff0c;忽略大小写&#xff0c;两个字符串缓冲区地址利用EAX和EDX两个寄存器传给该函数&#xff0c;字符串的长度用4个字节保存在缓冲区的前面&#xff0c;函数用EAX返回比较结果&#xff0c;结果为0表示相同。function CompareText(co…

俱乐部又多了一个MVP

山西DotNet俱乐部的周金桥同志成为2008年7月份的MVP&#xff0c;在这里祝贺一下。

交朋友的学问

交朋友这个事情是这样的&#xff0c; 咱们自己确实得努力&#xff0c; 否则有点水平的就不会倾向于和咱们建立关系。 不是别人骄傲&#xff0c; 而是如果交一大堆朋友&#xff0c; 用于交流的时间又有限&#xff0c; 到时候反而不知如何处理&#xff0c;得罪哪一个也行不是。过…

MathCAD求解方程组

用MathCAD解方程组&#xff0c;经常因为的原因出错&#xff0c;所以留在这里自己看&#xff0c;也供大家参考。 转自&#xff1a;http://www.cscce.net/fsp/reeducation/mathcad.html (九) 解方程与方程组 1&#xff0e;解一元一次方程 root函数格式&#xff1a;root(f(x),x…

计算机启动过程详解

打开电源启动机器几乎是电脑爱好者每天必做的事情&#xff0c;面对屏幕上出现的一幅幅启动画面&#xff0c;我们一点儿也不会感到陌生&#xff0c;但是&#xff0c;计算机在显示这些启动画面时都做了些什么工作呢&#xff1f;相信有的朋友还不是很清楚&#xff0c;本文就来介绍…