admin 管理员组文章数量: 894082
虚函数的研究
我们知道C++程序编译好以后大致分为:代码区、数据区,比如说类的函数体就被放在代码区,每一个类的实例则被放在数据区。
假设有下面的类的结构:
- #include <stdio.h>
- class Base {
- public:
- void foo() {
- printf("Base::foo()./n");
- }
- };
- class Derive : Base {
- public:
- void bar() {
- printf("Derive::bar()./n");
- }
- };
- int main()
- {
- Base b;
- b.foo();
- Derive d1;
- d1.foo();
- d1.bar();
- return 0;
- }
当编译器在编译的时候,将以上类的函数代码放在代码区,main函数里的三个函数执行语句,在编译好之后就变成了代码区的偏移地址,而且这个偏移地址能够在编译的时候唯一确定。虽然在这个例子中用到了类和对象,但实际上执行的时候和执行一个普通函数没区别。
本文标签: 虚函数的研究
版权声明:本文标题:虚函数的研究 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1687604168h120136.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论