- struct
1:传值和引用; 基本数据类型为传值,复杂的类传引用;
2: 不是基本数据类型,又希望方便的传值 — struct
3: 结构体有数据成员,成员函数;
4: 不能重载默认的构造函数,默认构造函数把所有的初始化为0;
5: 可以重载不同参数的构造函数;
6: 结构体的变量定义在哪里,那么内存就分配在哪里;
7: 结构体的new 不额外的创建内存,使用=左边的内存;
8: 结构体赋值和传参,内存都拷贝一份;
9: 结构体参数传引用 ref修饰;
- class与struct
1:class实例的赋值,赋的是引用地址,struct实例的赋值,赋的是值(内存的拷贝)
2:class作为参数类型传递,传递的是引用地址,struct作为参数类型传递,传递的是值,除非你使用ref;
4: new 操作符,class是在堆上分内存配,而结构体是用变量的内存,结构体定义在哪里,内存就分配在哪里;
结构体,重载默认的构造函数,必须要给每个数据成员赋值。
绝对不能重载结构默认的构造函数;
结构体不允许使用没有初始化的数据成员;