【问题标题】:Filling an array passed as a parameter with objects用对象填充作为参数传递的数组
【发布时间】:2011-04-04 14:27:58
【问题描述】:

我有一个类似这样的功能:

void foo(obj ary[], int arysize) {
    for (int i = 0; i < arysize; i++)
         ary[i] = obj(i, "abc");
}

我这样称呼它:

obj array[5];
foo(array, 5);

它应该用我的对象填充数组。但是,当它返回时,对象是垃圾。它适用于像int 这样的值类型和东西,所以我认为这与我创建的对象在范围内是本地的有关,所以当函数返回时它会被破坏。我希望能够在不使用 new 的动态分配对象的情况下做到这一点。我该怎么做?

【问题讨论】:

  • 你的 obj 类的构造函数中是否有内存分配?

标签: c++ arrays object parameter-passing


【解决方案1】:

这应该可以正常工作。我会调查你班级的赋值运算符。

【讨论】:

  • 哇,我真笨。赋值运算符正在更改对象的属性,但没有复制数据。谢谢。
猜你喜欢
  • 2014-10-30
  • 1970-01-01
  • 2012-01-25
  • 1970-01-01
  • 2020-04-15
  • 2021-03-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多