带有数组的实例对象
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
不用记得删内存等
我正在使用 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
不用记得删内存等