我可以用类对象做到这一点吗?

Ank*_*kit 6 c++ class

class xyz{

...
...
};

while(i<n){
           xyz ob;
           ...
           ...
}
Run Code Online (Sandbox Code Playgroud)

在重新分配内存之前,是否需要销毁早期的对象?

Ale*_*x B 8

没有.

  1. ob是一个堆栈分配的对象,因此它自己的生命周期是自动管理的.它是在你声明它的地方建造的,被毁坏了"}".
  2. 由于每次while迭代都是单独的{ ... }范围,因此每次迭代都会构造和销毁对象.


KMå*_*Mån 5

不,它的范围仅限于while循环.


ybu*_*ill 4

  1. 您的意思是定义一个对象而不是声明(从问题中删除)。
  2. 是的,你可以这么做。
  3. 不,您不需要销毁它,因为它会自动销毁。内存是在堆栈上分配的,并且无论如何都会被重用。在很多情况下编译器甚至可以对其进行优化。无论如何,你如何重新分配内存呢?