我使用下面的查询,它有句柄,但是即使我删除/不删除句柄的对象,也不会发生任何事情。但是每个人都说总是最终删除对象。我们为什么要删除它们?如果我们不删除它们会怎么样?我们怎么看得出来?
finally:
if valid-handle(hQueryTest) then delete object hQueryTest no-error.
if valid-handle(hQuerytestvalue) then delete object hQuerytestvalue no-error.
end finally.
如我所知,如果int变量(值类型)直接在类(引用类型)中声明,则在堆上分配的变量的内存。
但是,如果类中有一个方法,并且变量是在方法中声明的,或者是一个参数,则在堆栈上分配的内存。
public class A
{
int x; // heap
public void Func(int y) // stack
{
int z; // stack
}
}
我怎么看,内存分配在哪里?
我们已经开始编译一些应用程序的32位和64位版本。我的项目中的一个人鼓励我们将所有的32位整数转换为它们的64位等效值,即使这些值保证可以放在32位空间中。例如,我有一个保证永远不会超过10,000的值,我将它存储在一个无符号整数中。他的建议是将其转换为size_t,以便在64位环境中扩展到64位,即使我们永远不需要额外的空间。他说,无论存储在每个变量中的值是什么,使用64位变量都会加快应用程序的速度。他是对的吗?事实证明,这是一项大量的工作,如果没有实际效果,我并不急于投入这些努力。
我们使用的是Microsoft Visual C++ 2008。不过,我还是希望得到一个更通用的、与平台无关