
4个回答
展开全部
结构无需进行new,就可以直接使用
比如:
MyStruct struct;
struct.Method();
对于类的话,这是错误的
原因如下:
结构为值类型,而new用于为引用类型(类、对象、接口等)分配引用(内存地址),值类型存储于堆中,无需使用new。
比如:
int x;和MyStruct struct;
是一样的道理
这的x、struct都是值类型的
最后结构可以用new 也可以不用new
上面那位是胡说
比如:
MyStruct struct;
struct.Method();
对于类的话,这是错误的
原因如下:
结构为值类型,而new用于为引用类型(类、对象、接口等)分配引用(内存地址),值类型存储于堆中,无需使用new。
比如:
int x;和MyStruct struct;
是一样的道理
这的x、struct都是值类型的
最后结构可以用new 也可以不用new
上面那位是胡说
展开全部
声明结构的默认(无参数)构造函数是错误的。总是提供默认构造函数以将结构成员初始化为它们的默认值。在结构中初始化实例字段也是错误的。
如果使用 new 运算符创建结构对象,则会创建该结构对象,并调用适当的构造函数。与类不同,结构的实例化可以不使用 new 运算符。如果不使用 new,则在初始化所有字段之前,字段都保持未赋值状态且对象不可用。
如果使用 new 运算符创建结构对象,则会创建该结构对象,并调用适当的构造函数。与类不同,结构的实例化可以不使用 new 运算符。如果不使用 new,则在初始化所有字段之前,字段都保持未赋值状态且对象不可用。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
struct属于值类型,可以不用new,如果不new,结构体内的值就都是未赋值状态,需要在使用之前赋值,不然编译器会报错。若new了,结构体会调用无参构造函数,会初始化内部的值,比如int就会初始化为0,现在使用编译器就不会报错了。楼上所谓的“不能new”是完全错误的,写两行代码试试不就知道了?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
结构体不是存在堆中的,所以不用new ,也不能new
结构体是值类型的。不是引用类型的。你要new 就报错
结构体是值类型的。不是引用类型的。你要new 就报错
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询