如果我们在循环中创建对象会怎样?

里提克

我的问题是,“如果我们在循环中创建对象会发生什么?”

例:

    for (int i = 0; i < iterations; i++)
    {
        Foo* bar = new Foo(i); //here Foo(i) is a parameterized constructor
    }

以及如何删除它们?

保罗·M

您编写的方式是,每次迭代都在免费存储区(堆)上创建一个新对象。您可能想要在循环结束时销毁该对象:

for (int i = 0; i < iterations; i++)
{
    Foo* bar = new Foo(i); //here Foo(i) is a parameterized constructor
    // do stuff...
    delete bar;
}

或在容器中收集指针并在以后销毁它:

std::vector<Foo*> v;
for (int i = 0; i < iterations; i++)
{
    Foo* bar = new Foo(i); //here Foo(i) is a parameterized constructor
    v.push_back(bar);
}
// do stuff...
for(size_t i = 0; i < v.size(); ++i)
{
    delete v[i];
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如果我们不使用Java序列化对象会怎样?

如果我们不等待,诺言会怎样?

我们如何在循环中创建Selenium Webdriver对象并在循环结束后关闭窗口?

如何在干净模式下运行Eclipse?如果我们这样做会怎样?

如果我们将数据库更改为 Recursive Triggers Enabled :True 会怎样?

如果我们在 JS 中省略构造函数会怎样

如果我们提供备用的可绘制资源会怎样?

如果我们直接返回类实例的内存位置会怎样?

如果我们在 PLSQL 的 for 循环中有多个表,如何获得更新行数的总数?

如果for循环中的条件不断变化会怎样?

如果我们创建子类的对象,会不会有父类的对象创建?

在 goLang 中,为什么我们每次都在 for 循环中创建通道

如果我们在 while 循环内有一个 while 循环,我们是否会乘以复杂性?(即使使用了指针)

当我们使用列表理解时,Python会并行创建对象

在for循环中列出我们的范围索引

我们如何从4个内部for循环中退出?

我们可以限制 for 循环中的 if 条件吗?

如何知道我们在使用PHP的循环中

如果我们修改文本文件,bash while 循环读取变量“line”是否会自行更新?

我们如何创建一个我们应该实现的对象的“骨架类型”?

如果我们从函数构造函数创建一个名为“ a”的对象,那么为什么“ a”不是Function的实例?

我们如何为特征创建对象?

从A类的一个对象类B.如果A的一个对象的引用存在序列化,我们可能会失去从B对象?

在循环中创建对象

为什么我们可以在 if 循环中使用分号,而在 while 循环中不能使用分号

为什么我们不能在插入排序的while循环中更改语句的顺序?

我们如何在 foreach 循环中将行分成 3 列

为什么我们在Python的for循环中使用range(len)?

我们什么时候需要在循环中定义变量?