在我正在阅读的外部C ++学习资源中。
这个陈述的例子是什么?
当变量超出范围,或者使用delete关键字显式删除动态分配的变量时,将调用类析构函数(如果存在)以帮助在从内存中删除类之前清除该类。
而且,动态分配内存是什么意思?
感谢。
答案 0 :(得分:2)
在section 6.9中您最喜欢的C ++教程中对此进行了解释。
答案 1 :(得分:1)
“动态分配的内存”意味着通过动态内存(通常是堆)上的new或new []运算符进行分配。
答案 2 :(得分:1)
实施例
当变量超出范围时
void foo()
{
MyClass C;
C.callSomeMethod();
} // C is here going out of scope
或动态分配的变量是 使用删除显式删除 关键字
void foo()
{
MyClass* C = new MyClass; // allocating on heap
delete C; // deleting allocated memory
...
}
答案 3 :(得分:-4)
动态分配的内存是您自己分配的内存(calloc \ malloc \ new等)。如果你分配内存(动态) - 你也负责释放(免费)
例如,int i; - > compiller分配内存(静态)
char * c;
c = malloc(8 * sizeof(char)); (动态)
在C ++中,当你想释放对象的内存(销毁对象)时,你可以实现一个在对象被销毁之前调用的例程(自由例程)。它可能很有用(例如,为了释放一些资源,如关闭文件)