Utilizamos cookies propias y de terceros para mejorar la experiencia de navegación, y ofrecer contenidos y publicidad de interés. Al continuar con la navegación entendemos que se acepta nuestra política de cookies.
Para asignar memoria de forma dinámica C++ dispone de los operadores new y delete, sin embargo en el caso de arrays estáticos sigue declarándose como siempre. Además recuerda que C++ es un superconjunto de C, por lo tanto puede utilizar el método convencional que utilizabas en C (con malloc) que también es aceptado.
Si querés hacer un array de la clase X debés proceder del siguiente modo:
class X { int a; void loquesea(); };
void main() { X miX[40]; // array de 40 objetos X
X * pX = new X[40]; // asignación dinámica
// ...
pX[0].a = 20; // accediendo a la propiedad a del objeto 0 de pX //...
Por otro lado, si utilizas malloc para pedir memoria para guardar objectos de clases, no se llama a los constructores de esas clases. Ademas, si quieres conseguir un array de objetos, la clase debe tener un constructor por defecto (sin parámetros), pues no se puede llamar a un constructor específico.