图解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处发现。

作者

Wu Rang

发布于

2010-08-17

更新于

2021-12-06

许可协议

评论