C++_练习—多态_证明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     }
12 
13     virtual void pri(void) {
14         cout << "parent =  "<< a << endl;
15     }
16 
17 private:
18     int a;
19 };
20 
21 class child :public parent {
22 public:
23     child(int b) :parent(6) {
24         this->b = b;
25     }
26 
27     virtual void pri(void) {
28         cout << "child =  " << b << endl;
29     }
30 
31 private:
32     int b;
33 };
34 
35 int main(void)
36 {
37     parent par(1);
38     child chi(2);
39 
40     parent *p = NULL;
41 
42     //p = &par;
43       p = &chi;
44 
45       p->pri();
46 
47       cout << sizeof(par) << endl;  // 8个字节 = int + vpre 指针 (函数在代码段不占)
48       cout << sizeof(chi) << endl;  //12个字节 = int + int + vptr指针(继承父类)
49 
50     system("pause");
51 
52     return 0;
53 }

 

 

笔记


 

 

 

 

 

 

 

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

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

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

相关文章

(转)解读NTFS(一)

NTFS是一个比FAT复杂的多的文件系统&#xff0c;我们一起努力来把它完整的解读出来 NTFS的引导扇区也是完成引导和定义分区参数&#xff0c;和FAT分区不同&#xff0c;FAT分区的BOOT记录正常&#xff0c;就显示分区没有错误&#xff0c;即使文件不正确&#xff0c;而NTFS分区的…

路由器硬件结构

路由器是一种连接多个网络或网段的网络设备&#xff0c;它能将不同网络或网段之间的数据信息进行“翻译”&#xff0c;以使它们能够相互“读”懂对方的数据&#xff0c;从而构成一个更大的网络。路由器由硬件和软件组成。硬件主要由中央处理器、内存、接口、控制端口等物理硬件…

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 构造函数 …

分区表分区字段的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;在这里祝贺一下。