首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

对象作为函数返回值是指针吗?该如何解决

2013-10-13 
对象作为函数返回值是指针吗?基础问题啊,不太懂,请大家指点一下。对象作为函数的指针是不是个指针?例如我有

对象作为函数返回值是指针吗?
基础问题啊,不太懂,请大家指点一下。
对象作为函数的指针是不是个指针?
例如

我有一个类TMyClass,其有一个函数,GetDataSet,返回值是其内部创建的一个 TDataSet对象

我在类外,创建一个TDataSet变量ds1,获得这个函数的返回值.
请问,这个ds1是个指针吗?怎么释放?

只要ds1:=nil就可以了吗?会不会造成内存泄漏?(我不会怎么 评价程序性能和 内存泄漏情况)
请高手指点一下。



[解决办法]
LZ的方法 ,肯定 会造成内存泄露的。因为ds1 := nil 只是将此对象的内存地址变为nil,并没有将此对象销毁,必须使用ds1.free,才能释放。
[解决办法]
要Free的.
不过函数返回对象不推荐.
推荐的做法是在外边创建对象,用参数传到函数中,用完就在外边释放.
一般遵照谁来创建谁来释放的原则.

热点排行