社区
C#
帖子详情
请问2个实体类,互为成员时,实例化的时候内存是个什么状况
PerfectStar
2012-08-02 03:40:07
比如:
public Class A
{
public B b;
}
public Class B
{
public A a;
}
实例化的时候内存是个什么状况
比如
A a1=new A();
会不会造成死循环,为什么呢?
...全文
160
3
打赏
收藏
请问2个实体类,互为成员时,实例化的时候内存是个什么状况
比如: public Class A { public B b; } public Class B { public A a; } 实例化的时候内存是个什么状况 比如 A a1=new A(); 会不会造成死循环,为什么呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
qldsrx
2012-08-02
打赏
举报
回复
如果是结构体,这样写将报错,如果是类,这样写正常。
结构体和类都是先有声明再有内部实现,因此不但可以互为成员,甚至将自身设置为成员都可以,只不过结构体在自身没完成定义之前,是不能使用的,对其内部布局时用到的所有结构体必须是完成定义的结构体,否则无法进行
布局嵌入
,而指针或类的话就不需要,只要有个类型声明即可,嵌入的仅仅是地址。
bdmh
2012-08-02
打赏
举报
回复
new A时,A中的b只是声明,并没有创建实例,如果在A的构造函数中创建B,那么就会调用B的构造函数,如果B的构造函数中又创建A,那么就是死循环
ViewStates
2012-08-02
打赏
举报
回复
A在实例化的时候会将你的b置为null,所以不会有死循环。
但当你两个对象中在申明字段时都实例化了就死了。
【C++】对象
实例化
/
成员
函数/
成员
变量的
内存
管理
本文聚焦C++对象
实例化
的
内存
管理。介绍了C++中
成员
函数和数据的存储位置,指出函数存于代码区,数据存于栈区、堆区等。还分析了C++
成员
函数在
内存
中的存储方式,以及类
实例化
对象大小sizeof()的多种情况,如空类、含虚函数类等。
Java对象在
内存
中
实例化
的过程
本文深入探讨Java对象在
内存
中的
实例化
过程,包括类的
实例化
涉及的栈区、堆区和方法区,以及JDK8前后JVM
内存
布局的变化。详细解析了新生代和老年代的
内存
管理机制,特别是复制算法在年轻代垃圾回收中的应用,以及双Survivor区的设计原理。
Java对象在
内存
中
实例化
本文详细阐述了Java对象在
内存
中的
实例化
过程,涉及栈区、堆区和方法区的使用。当类被加载
时
,
成员
变量和方法进入方法区;执行main方法
时
,栈开始工作;
实例化
对象
时
,对象信息存于堆,引用存于栈;赋值操作通过引用找到堆中对象进行。完成方法调用后,栈中的数据依次出栈,直至main方法结束。
C语言 malloc 为结构体
成员
指针申请
内存
本文探讨了在C语言中,当结构体包含指针
成员
时
,如何正确地为这些指针
成员
分配
内存
。通过实例展示了直接为结构体分配
内存
并不会给其指针
成员
分配空间,以及如何通过额外的malloc调用解决这一问题。
面向对象编程基础:类的
实例化
与对象
内存
模型详解
本文详细介绍了面向对象编程中类的
实例化
与对象
内存
模型。类的
实例化
是用类类型创建对象的过程,
实例化
后才为对象分配
内存
。类对象
内存
结构中,
成员
变量独立存储,
成员
函数共享。类大小计算考虑
成员
变量和
内存
对齐规则,空类有1字节占位符。
C#
111,131
社区成员
642,541
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章