带有数组的实例对象

Instance object with a array

我正在使用 C++ 和 class 一起工作,例如:

class foo {
int a ;
    foo (){
      a = rand();
    } 
    foo(int b){ a=b }
 };
 int main(){
   foo * array = new foo[10]; //i want to call constructor foo(int b)
  // foo * array = new foo(4)[10]; ????
 }

请帮忙,谢谢:D

你应该首先纠正你的语法(输入;,让你的构造函数public等)。然后,你可以在C++11中使用统一初始化,比如

#include <iostream>

class foo {
public:
    int a;
    foo () {
    }
    foo(int b) { a = b; }
};
int main() 
{
    foo * array = new foo[10] {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
    std::cout << array[2].a << std::endl; // ok, displays 2
    delete[] array;
}

您应该尽量避免使用原始数组,而是使用 std::vector(或 std::array)或任何其他标准容器。示例:

std::vector<foo> v{0, 1, 2, 3, 4, 5, 6, 7, 8, 9};

std::vector v(10, 4); // 10 elements, all initialized with 4

不用记得删内存等