大家看看,这几句代码会生成多少个对象?
dim i as integer
dim obj1 as myclass 'myclass是自定义的一个类for i =1 to 100
set obj1=new myclass
next我想问,这样做会实例化100个对象呀?还是只实例化一个对象,
如果是真的实例化了100个实例,那这些实例由哪个名字来引用呢?因为obj1永远是引用最后一个实例呀!
这样是不是会造成内存泄漏呀?
dim i as integer
dim obj1 as myclass 'myclass是自定义的一个类for i =1 to 100
set obj1=new myclass
next我想问,这样做会实例化100个对象呀?还是只实例化一个对象,
如果是真的实例化了100个实例,那这些实例由哪个名字来引用呢?因为obj1永远是引用最后一个实例呀!
这样是不是会造成内存泄漏呀?
解决方案 »
- commonDialog怎么打开多个文件?
- 各位大哥大姐:能否给小地指点一下怎样用VB改“计算机工作组名”。
- 急求:如何通过通过循环取出Listview中的多条记录
- 大家想赚美金吗?
- 如何获得系统的日期格式
- ”在线播放不下载“,在线播放了后,C:\WIN98\Temporary Internet Files目录下怎么没有
- 为什么安装VB6.0一定要安装msdn???
- vb创建excel,读取另一个车excel中的数据进来后,两个excel进程无法关闭
- vb fso如何将一个文件复制为另一个文件 且 删除旧文件
- 如何关闭一个正在监听的端口?
- UNICODE 编码
- 已知三角形三边的长,求三个角的度数.(几何公式忘光了)
你可以在 myclass 中加入这样的代码:
Private Sub Class_Terminate()
MsgBox "myclass terminate"
End Sub
你可以在 myclass 中加入这样的代码:
Private Sub Class_Terminate()
MsgBox "myclass terminate"
End Sub
---------------------------
谢,我试了,发现确实弹出来100次对话框,是不是说明实例了100个对象呀?
就算象楼上说的,VB不能及时回收的话,那么个人认为楼主的代码还不算是内存泄漏,我想内存泄漏应该是指无法回收的内存,而楼主这种情况VB程序结束后会自动回收的。楼主的代码最多应该是内存使用不合理,属于一种浪费。而事实上,我想楼主的代码应该不会有问题吧,上面的测试表明每向obj1赋一次值,原来的对象将被释放,VB应该可以管理的。你也可以再做个测试,加200000个对象,从资源管理器看一下内存的状态就基本可以得到答案了。
-----------------------------------
谢谢,我试了,内存确实没有增加,看来VB自动回收了。没有泄漏