- 6
- 0
- 约3.1千字
- 约 9页
- 2018-06-01 发布于江苏
- 举报
Assembly 继承和多态
继承 (Inheritance)允许⼀个类继承另⼀个类的数据和成员函数。例如, 考虑图 7 .19 中
的代码。它展⽰了两个类,A和B ,其中类B 通过继承类A得到的。程序的输出如
下:
Size of a: 4 Offset of ad: 0
Size of b: 8 Offset of ad: 0 Offset of bd: 4 A::m()
A::m()
注意,两个类的数据成员ad(B通过继承A得到的)在相同的偏移处。这 ⾮常重要的,
因为f函数将传递⼀个指针到⼀个A对象或任意⼀个由A派⽣( 也就 ,通过继承得到)
的对象类型中。图 7 . 0展⽰了此函数的(编辑过的)汇编代码(gcc得到的) 。
注意在输出中,a和b对象调⽤的都 A的成员函数m 。从汇编程序中,我们可以看到
对A::m()的调⽤被硬编码到函数中了。对于真正的⾯向对象编程,成员函数的调⽤取
决于传递给函数的对象类型 什么。这就 所谓的 多态 。缺省情况下,C++关掉了这
个特性。你可以使⽤virtual 关键字来激活它。图 7 . 1展⽰了如何修改这两个类。其它
代码不需要修改。多态可以⽤许多⽅法来实现。不幸的 ,当在以这种⽅法书写的时
候,gcc的实现⽅法正处在
您可能关注的文档
最近下载
- 变频器技术考试题及答案.docx VIP
- 重症患者的肠内营养护理.pptx VIP
- 输液泵操作评分标准.doc VIP
- 青少年焦虑症护理查房.pptx VIP
- 试析《三国演义》在日本动漫中的传播与接受.pdf VIP
- 从吉川英治《三国志》看《三国演义》在日本的传播与接受The Spread and Reception of the Romance of the “Three Kingdoms” in Japan from the “Three Kingdoms” by Yoshikawa Eiji-来源:现代语言学(第2022002期)-汉斯出版社.pdf VIP
- 与总承包单位协调配合措施方案.docx VIP
- 《清静经》全文及译文.pdf VIP
- 与总承包单位协调配合措施方案.docx VIP
- 线线角、线面角、面面角专题.pdf VIP
原创力文档

文档评论(0)