芯が強い人になるESTJ-A

# struct和class的区别

IT開発 Tags: 无标签 阅读: 199

截屏2021-07-06 18.44.16.jpg
截屏2021-07-07 10.32.09.jpg
截屏2021-07-06 18.33.40.jpg
截屏2021-07-06 18.25.30.jpg
截屏2021-07-07 10.30.27.jpg

总结,主要有这么几点不同:

1.struct 是值类型,class 是对象类型

2.struct 不能被继承,class 可以被继承

3.struct 默认的访问权限是public,而class 默认的访问权限是private.

4.struct总是有默认的构造函数,即使是重载默认构造函数仍然会保留。这是因为Struct的构造函数是由编译器自动生成的,但是如果重载构造函数,必需对struct中的变量全部初始化。并且Struct的用途是那些描述轻量级的对象,例如Line,Point等,并且效率比较高。class在没有重载构造函数时有默认的无参数构造函数,但是一被重载些默认构造函数将被覆盖。

5.struct的new和class的new是不同的。struct的new就是执行一下构造函数创建一个新实例再对所有的字段进行Copy。而class则是在堆上分配一块内存然后再执行构造函数,struct的内存并不是在new的时候分配的,而是在定义的时候分配