Me preguntaba si era posible crear una matriz de objetos cuando el objeto necesita que el constructor los transfiera. Quiero algo como esto:cómo declarar dinámicamente una matriz de objetos con un constructor en C++
MyClass *myVar;
myVar = new MyClass[num]; // I would like to specify the array size after declaration
int i = 0;
for(i = 0;i < num;i++)
myVar[i] = new MyClass(0,0); // I would also like to populate the array with new objects
sé que esto funciona:
MyClass *myVar;
myVar = new MyClass[num];
pero esto sólo funciona cuando el constructor tiene nada pasaba en ella. ¿Es lo que estoy tratando de hacer posible? Si es así, ¿cómo lo hago?
EDIT: descubrí cómo hacerlo con el uso de matrices. Aquí es cómo lo hice:
MyClass **myVar;
myVar = new MyClass *[num];
for(i = 0;i < num;i++)
myVar[0] = new MyClass(0,0);
me gustaría utilizar vectores y tal, pero mi profesor nos ha dicho que utilizar matrices básicas siempre que sea posible. La solución anterior que obtuve de algún código que mi maestra escribió. ¡Gracias por toda tu ayuda!
Gracias por su ayuda! De hecho, estaba buscando un enfoque usando matrices en lugar de vectores porque mi profesor quería que la clase usara matrices en su lugar. Encontré la respuesta sin embargo. – user972276
@ user972276: para las matrices, su primer enfoque es lo que se puede hacer, si desea invocar un constructor no predeterminado. Sin embargo, en el futuro, si alguna vez necesitas una matriz, * primero * considera usar 'std :: vector'. Es un contenedor impresionante, con muchas características interesantes. – Nawaz