对象模型如何影响程序
来源:互联网 发布:unity3d 重置动画状态 编辑:程序博客网 时间:2024/05/18 23:28
先看一下一个简单的函数:
X foobar(){ X xx; X *px = new X; xx.foo(); delete px; return x;}
编译器做出的一些转换:
void foobar(X& _result){ //按原来的程序需要构造两个临时变量 //所以这里使用引用的方式来返回结果 //调用构造函数 _result.X::X(); //申请内存(其实就是operator new(size_t size)) px = _new(sizeof(X)); //如果申请内存成功就调用构造函数 if( px != 0) px->X::X(); //这里就是成员函数的形式的转换,成员函数其实 //就是一个一般的函数,然后把this指针传入进去 //下面的foo 就是 foo(X* this); foo(&_result); //虚函数的基本调用方式,也就是通过vptr来调用 //vptr指向vtbl,然后直接用->符号即可访问vtbl //然后下标2则可以访问到一个函数指针,所以调用 //就是这样(*xxx)(px) xxx就是取到的指针 //px就是this指针 (*px->vtbl[2])(px); //同上,这是析构函数的多态使用,也需要 //检测指针不为空,因为c++提供一个保证 //就是对NULL进行delete不会出错 if( px != 0) { (*px->vtbl[1])(px); _delete(px); } return;}
1 0
- 对象模型如何影响程序
- 关于引用变量的生命周期如何影响对象的生命周期
- c++ 继承 33 虚继承对c++ 对象内存模型造成的影响
- 二十八、继承(五) 虚继承对C++对象内存模型造成的影响
- 读《深度探索C++对象模型》之分层继承对于内存布局的影响
- 虚继承和虚函数对c++对象存储模型的影响(类/对象的大小)
- DSP程序中 ,如何完成延时且不影响整体程序的工作效率
- 微信小程序的影响
- COM套间对.NET程序使用COM对象的影响(上)
- COM套间对.NET程序使用COM对象的影响(中)
- COM套间对.NET程序使用COM对象的影响(下)
- 让一个对象=另一个对象,修改一个对象的值,如何不影响另一个的值
- Web程序,使用ReportSerivce报表对象模型编程发布报表
- .NET开发Silverlight程序:界面和对象模型
- .NET开发Silverlight程序:界面和对象模型
- 《c++程序性能优化》——C++对象模型
- 使用服务器端对象模型,编写程序管理SharePoint列表
- 深度探索C++对象模型---程序转化语意学
- 黑马程序员——Java基础 IO流 (复习)
- c#实现拼碎图输出
- Android中Activity启动模式详解
- dispatch_after 的使用方法
- 深入理解Java的接口和抽象类
- 对象模型如何影响程序
- 性能测试重现Session引发的OOM
- CTR预估中GBDT与LR融合方案
- Emacs 学习(五)
- 杭电ACM2076--夹角有多大(题目已修改,注意读题)
- 服务器软件相关问题
- 触摸屏驱动程序设计
- Git常用命令
- Thread ,Service 和 AsyncTask