怎么确定c++对象中变量生命周期和对象在内存中存储分布

2019-12-10 18:18发布

这个问题困扰了很久,那位坛友能帮我解释一下,不胜感激。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
bedlamitemcu
1楼-- · 2019-12-10 20:47
 精彩回答 2  元偷偷看……
takashiki
2楼-- · 2019-12-10 23:47
这个跟编译器实现相关,所以笼统的说就是:不知道。涉及到虚函数和多重继承尤其是菱形继承的,至少VC++和GCC实现是不一样的。
bedlamitemcu
3楼-- · 2019-12-11 02:15
takashiki 发表于 2019-8-8 16:35
这个跟编译器实现相关,所以笼统的说就是:不知道。涉及到虚函数和多重继承尤其是菱形继承的,至少VC++和GC ...

随便举个例子就可以了  vc++或者gcc的都可以    我现在很困惑c++卡到这里进行不下去了  谢谢      
takashiki
4楼-- · 2019-12-11 07:12
普通的类对象(没有虚函数的单根继承),就认为是C结构体一样,该对齐的对齐就是。继承的话就往后面继续加
虚函数和菱形继承的,看看这个好了:https://www.cnblogs.com/cswuyg/archive/2010/08/20/1804113.html
重载new的,它说占用多少字节就占用了多少,跟sizeof没有关系了。
重载placement new的,连位置都直接给指定了,无论new多少次,都不会创建新的对象,而是使用已有的空间,内存排布和上面的一样。这种鬼方法能够new但是不能delete,只能把析构函数当做普通函数调用
bedlamitemcu
5楼-- · 2019-12-11 09:45
takashiki 发表于 2019-8-8 16:51
普通的类对象(没有虚函数的单根继承),就认为是C结构体一样,该对齐的对齐就是。继承的话就往后面继续加
...

好的  我先研究一下   谢谢

一周热门 更多>