Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   C++ Builder (https://www.clubdelphi.com/foros/forumdisplay.php?f=13)
-   -   Inicializar en constructor de array de clases (https://www.clubdelphi.com/foros/showthread.php?t=91325)

aguml 04-01-2017 01:53:05

Inicializar en constructor de array de clases
 
A ver si me hago entender, suponiendo que tengo una clase llamada Persona quiero hacer algo asi:
Código PHP:

Persona familia[50](nombre_familia); 

Donde nombre_familia seria por ejemplo un char* y que en el constructor de la clase hubiese algo como:
Código PHP:

familia=nombre_familia

Y que automáticamente se inicialicen los 50 con la dirección que se pasa en el constructor para el puntero familia. No se si me explico. O sea sin la necesidad de usar un bucle para que todos apunten a la misma dirección.

AgustinOrtu 04-01-2017 04:16:43

Que yo sepa no se puede hacer sin un bucle. Y para que queres 50 punteros a lo mismo??

aguml 04-01-2017 19:42:03

La idea es tener un array donde estará el valor de una variable de la clase. Si hay 50 habrá 50 valores y no quiero tener 50 arrays sino poder acceder al mismo array desde cualquiera de las clases.

AgustinOrtu 04-01-2017 20:55:15

No entendi nada de lo que queres hacer y menos aun porque :D:D

Y cual es el problema con un bucle para asignar los valores?

_Leo 10-01-2017 16:56:36

Cita:

Empezado por aguml (Mensaje 512186)
La idea es tener un array donde estará el valor de una variable de la clase. Si hay 50 habrá 50 valores y no quiero tener 50 arrays sino poder acceder al mismo array desde cualquiera de las clases.

No entiendo muy bien lo que quieres hacer pero, ¿has probado declarando el array como miembro estático de la clase? Así todas las instancias de la clase accederían al mismo en lugar de crearse uno por cada instancia.

aguml 11-01-2017 08:29:30

Creo que es lo que quiero pero no se como hacerlo.

escafandra 11-01-2017 12:47:01

Declaras tu clase:
Código:

// MyClase.h
typedef char Nombre[10];

class MyClase
{
  public:
  static Nombre Familia[5];
};

En el archivo MyClase.cpp inicializas el miembro estático:
Código:

// MyClase.cpp
Nombre MyClase::Familia[5] = {"Pepe", "Juan", "Luís", "María", "Berta"};

Y luego lo puedes usar de dos formas, mediante el nombre de la clase o de una instancia de dicha clase:
Código:

// MyClase.cpp
void unaFuncion()
{
  MyClase C;
  char* N;

  N = MyClase::Familia[2]; // Luís
  N = C.Familia[2];        // Luís
}

Saludos.

aguml 31-01-2017 16:11:30

Gracias, es justo lo que necesitaba.


La franja horaria es GMT +2. Ahora son las 14:12:53.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi