struct 和class 在声明和初始化上及构造函数 深层探讨

来源:百度知道 编辑:互助问答吧 时间:2021/11/29 23:23:18
请关注:C#、C++中,struct 和class 在声明和初始化上及构造函数上有什么区别 的话题,欢迎理解深的朋友进来探讨。

struct在C#里是静态的,声明一个struct类型就会把内存空间分配好。
比如先定义一个struct:
struct Person
{
int Id;
String Name;
};
然后声明一个变量:
Person p;
这时候p的内存空间就分配好了。
如果Person是一个class,则变量p只是一个指向null的引用,需要new一下才能分配内存空间。

在C++里面定义变量可以用两种形式,可以定义为指针(引用),也可以直接定义实体。全靠程序员自己了。

结构体和类的一个不同之处在于他们的构造函数,结构体是没有构造函数的,类可以使用构造函数对自己进行初始化。new运算符会调用类的构造函数。