在 C++ 中是否有一种方法可以在对象上添加参数,其中包含一个数组,例如:
int x = 1;
int y = 2;
Object myObject( x, y )[5]; // does not work
我希望我可以将参数放入对象中,同时创建一个包含 5 个这些对象的数组,有人知道怎么做吗?还有更好的方法吗?
在 C++ 中构造对象数组时,只能使用默认构造函数,除非您使用显式数组初始化语法:
Object myObject[5] = { Object( x, y ),
Object( x, y ),
Object( x, y ),
Object( x, y ),
Object( x, y ) }
以下是 C++ FAQ 中关于此的一些有用信息:
如果您不介意使用向量而不是数组:
std::vector<Object> obj_vec(5, Object(x, y));
或者,如果您真的想要一个数组并且不介意分两步初始化它:
Object obj_array[5];
std::fill_n(obj_array, 5, Object(x, y));
或者是这样的:
int x = 1;
int y = 2;
int numObjects = 5;
Object myObjectArray[numObjects];
for (int i=0, i<numObjects, i++) {
myObjectArray[i] = new myObject(x,y);
}
也许它是一个以 x,y 和 numObjects 作为参数的函数?
您还没有提到哪种语言,但在 C# 3.0 中,您可以使用集合初始化器:
var myObject = new List<Object>() {
new Object(x,y),
new Object(x,y),
new Object(x,y),
new Object(x,y),
new Object(x,y)
};