图解C#类的内存分配
对象的创建
格式:
clsPerson myFriend = new clsPerson();
或者
clsPerson myFriend;
myFriend = new clsPerson();
执行clsPerson myFriend时vs请求windows分配一个内存空间,名为myFriend.但没有任何实际的值,为空(NULL)。
![创建类]
当执行myFriend = new clsPerson();
实例化以后,vs再次向windows申请一个空间,来存储名为 myFriend的数据,比如创建时申请的地址为800000,值为NULL,执行myFriend = new clsPerson()后申请一个地址是900000的内存空间,里面存储myFriend类中的数据,此时800000这个地址名为myFriend内存空间的值就成了900000,也就是说将myFriend的数据关联了起来。
![创建完成]
换一个说法,假如类是一个蛋糕模具,对象是水果蛋糕。 可以这样理解:
clsCakeMaker fruitCake;
调用蛋糕模具,创建了一个蛋糕对象,名字叫fruitCake.申请了一个地址800000来存放它。
fruitCake = new clsCakeMaker();
fruitCake被实例化,申请了900000这个地址存放它的数据,并且和800000的地址相关联。
也就是说模具在800000处发现,而蛋糕在900000处发现。