社区
进程/线程/DLL
帖子详情
OOP与内存管理的资料
wangunix
2005-06-30 02:59:08
我想找一些讲 OOP程序在内存中的状况的文章。
主要是讲,对象,句柄这些东西,在内存中是什么样的数据结构,等等。
不知道那里有,在CSDN文档中心找了半天,也没有找到。
...全文
175
7
打赏
收藏
OOP与内存管理的资料
我想找一些讲 OOP程序在内存中的状况的文章。 主要是讲,对象,句柄这些东西,在内存中是什么样的数据结构,等等。 不知道那里有,在CSDN文档中心找了半天,也没有找到。
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wangunix
2005-07-04
打赏
举报
回复
Hi Guys
前几天,就是在 csdn中看到一片文章,是专门讲,oop的一些概念在实现的时候在内存中的状态的,
由于当时是在处理另一个问题,所以就没有仔细看,现在再找,就找不到了,
那位弟兄,看到过?
prgmBaggio
2005-07-03
打赏
举报
回复
mark
qrlvls
2005-07-01
打赏
举报
回复
句柄你可以把他看作一个整数,或者一个指针
总之你把他看作一个普通的数据类型就可以了
在应用层他表示某个对象的一个 ID 值
而在系统内核他则表示指向相应对象的指针
qrlvls
2005-07-01
打赏
举报
回复
也就是说,实际上 C++ 编译的思想可以用 C 语言来实现,只不过在语法上完成,而不需要在编码上完成,举例说明:
C++语法:
class A
{
public:
A () { x = 0; }
virtual add(int a, int b) { return a + b; }
void inc() { x ++; }
public:
int x;
}
void main() { A a; a.add(1, 2); a.inc(); }
基本上可以用如下 C 语法表示:
struct A;
typedef int (*AddFunc)(struct A *pObj, int a, int b);
struct A
{
AddFunc pAdd;
int x;
};
int Add(struct A *pObj, int a, int b) { return a + b; }
int Iub(struct A *pObj) { pObj->x ++; }
void main()
{
struct A a;
a.x = 0;
a.pAdd = Add;
a.pAdd(1,2);
a.Inc(&a);
}
qrlvls
2005-07-01
打赏
举报
回复
参考几篇文章:
http://blog.csdn.net/jiangsheng/archive/2005/01/24/265488.aspx
http://dev.csdn.net/article/56/56202.shtm
总的来说对象空间的大致组成实际上为:
每个对象独立的部分:
虚函数表 + 成员变量 (可以看成一个结构体)
每个对象公有的部分:
成员函数实际上你可以考虑成第一个参数为结构体指针(对象的this指针)的普通函数
静态成员
qrlvls
2005-07-01
打赏
举报
回复
CSDN 以前有一些比较基础的文章,你可以搜索一下,估计很难找到专门讲述关于该主题的资料
wangunix
2005-07-01
打赏
举报
回复
有人知道么?
kotlin函数参数,查漏补缺
自我介绍一下,小编13年北京科技大学毕业,曾经在字节跳动待过,也去过vivo、小米等大厂,18年进入华为一直到现在。小编这些年深知大多数初中级Android工程师,想要提升自己,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。因此我收集整理了一份《2024年Android移动开发全套学习
资料
》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担,能在岗位上再创辉煌,步步高升!!。
双非末本的我拿下了12家大厂offer,靠的全是这份《阿里内部
前言 在网络技术中基于浏览器的B/S结构无论在PC端还是手机端都充当着至关重要的角色。 PC端自不必说,手机中很多应用虽然是以APP的形式存在,但它采用的还是B/S结构。如今日头条、微信的朋友圈等,这些应用在内部封装了浏览器,后端仍然是 Web站点。 在大型网站和复杂系统的开发中,Java无疑具有很大的优势,而在lava的Web框架中 Sprig MVC 以其强大的功能和简单且灵活的用法受到越来越多开发者的青睐。 Spring MVC入门很简单,但是要想真正使用好却并非易事,而且现在也没有全面、深入地使用资
2022年你与字节跳动只差这份笔记,Android开发教程入门
前言 我2016年开始接触Android,从刚开始接触就不断地听到Android市场饱和工作难找等消息。 虽然当时也非常迷茫,不过由于第一次深入接触编程语言,再加上自己的一点兴趣,就一直坚持下来了。 通过两个月的面试经历,确实发现Android岗位比较少,而且通常要求比较高,不仅需要 Android 开发经验,往往还需要会React Native,JavaScript等,甚至还期望你能具有IOS开发经验。 不过作为应届生还是有些优势的,那就是一些一线的互联网公司还是比较看中个人基础以及发展潜力的,所以如果能
Unity ECS和
OOP
优劣对比
在ECS框架中,组件存储在连续的内存块中,这是为了优化缓存命中率和访问性能。但如果有新增的组件,是否还能保证内存连续性,取决于具体的实现方式和
内存管理
策略。内存布局优化:ECS通过将相同类型的组件存储在连续的内存块中(AoS -> SoA 转换),提高了缓存命中率,减少了内存访问延迟。当预分配的内存不足以容纳新增的组件时,系统通常会分配一块更大的连续内存,将现有数据复制到新内存,并释放旧内存。对于拥有成千上万个实体的场景,ECS通过结构化的数据访问方式可以显著提升处理效率,适合大型游戏或仿真系统。
C++与Java:
OOP
的两种哲学
C++和Java在面向对象编程(
OOP
)上有着显著差异。C++提供底层控制和高性能,支持多继承和手动
内存管理
,适合系统级开发;Java则强调跨平台性,采用单继承和垃圾回收机制,更易学习且适合企业应用开发。两者在继承机制、
内存管理
和执行环境等方面存在本质区别:C++通过编译为机器码直接运行,Java则通过JVM执行字节码。选择取决于项目需求、性能要求和开发效率等因素,初学者通常建议先学Java再探索C++。
进程/线程/DLL
15,465
社区成员
49,169
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章