elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: AIO elhacker.NET 2021 Compilación herramientas análisis y desinfección malware


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  C++ Crear variables y objetos en tiempo de ejecución
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: C++ Crear variables y objetos en tiempo de ejecución  (Leído 6,143 veces)
ljma

Desconectado Desconectado

Mensajes: 3


Ver Perfil
C++ Crear variables y objetos en tiempo de ejecución
« en: 21 Noviembre 2014, 10:29 am »

Hola,

¿Es posible crear variables u objetos en tiempo de ejecución?

Por ejemplo con los valores almacenados en el array

string sValores[2]={"uno","dos","tres"};

crear mediante un bucle tres variables con los nombres almacenados "uno" "dos" "tres".

Gracias anticipadas

Saludos



En línea

avesudra


Desconectado Desconectado

Mensajes: 724


Intentando ser mejor cada día :)


Ver Perfil
Re: C++ Crear variables y objetos en tiempo de ejecución
« Respuesta #1 en: 21 Noviembre 2014, 10:42 am »

No entiendo bien tu pregunta, si ya tienes definidas las cadenas en una variable ¿para qué quieres otras? , o quieres decir esto:
Código
  1. #include <iostream>
  2. #include <cstdlib>
  3.  
  4. int main(int argc, char *argv[])
  5. {
  6.    std::string sValores[3] = {"uno", "dos", "tres"};
  7.  
  8.    //Creamos las variables a partir de sValores
  9.    std::string cadenaUno  = sValores[0];
  10.    std::string cadenaDos  = sValores[1];
  11.    std::string cadenaTres = sValores[2];
  12.  
  13.    // O a un array constante de caracteres.
  14.    const char *cCadenaUno  = sValores[0].c_str();
  15.    const char *cCadenaDos  = sValores[1].c_str();
  16.    const char *cCadenaTres = sValores[2].c_str();
  17.  
  18.    std::cout << cadenaUno  << std::endl;
  19.    std::cout << cadenaDos  << std::endl;
  20.    std::cout << cadenaTres << std::endl;
  21.  
  22.    std::cout << cCadenaUno  << std::endl;
  23.    std::cout << cCadenaDos  << std::endl;
  24.    std::cout << cCadenaTres << std::endl;
  25.  
  26.    return EXIT_SUCCESS;
  27. }
O quizás te refieras a esto:
Código
  1. #include <iostream>
  2. #include <cstdlib>
  3. #include <string>
  4. #include <vector>
  5.  
  6. using namespace std;
  7.  
  8. int main(int argc, char *argv[])
  9. {
  10.    string sValores[3] = {"uno", "dos", "tres"};
  11.    vector<string*> variablesNuevas;
  12.    //Creamos las variables a partir de sValores
  13.    for(int i = 0; i!= sizeof(sValores)/sizeof(string); ++i)
  14.    {
  15.        string * tmp = new string(sValores[i]);
  16.        variablesNuevas.push_back(tmp);
  17.    }
  18.  
  19.    for(vector<string*>::iterator it = variablesNuevas.begin(); it != variablesNuevas.end(); ++it)
  20.    {
  21.        cout << **it << endl;
  22.        // Liberamos memoria
  23.        delete *it;
  24.    }
  25.  
  26.    return EXIT_SUCCESS;
  27. }


« Última modificación: 21 Noviembre 2014, 10:53 am por avesudra » En línea

Regístrate en
ljma

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: C++ Crear variables y objetos en tiempo de ejecución
« Respuesta #2 en: 21 Noviembre 2014, 13:11 pm »

Hola,

 Gracias por responder.

Me refiero más bien a la segunda opción pero, aunque lo que pongo este mal, lo pongo para que se entienda:

//Creamos las variables a partir de sValores
   for(int i = 0; i!= sizeof(sValores)/sizeof(string); ++i)
   {
       string (sValores) ;
   }

Se crean tantas variables de tipo  string (o int ..) como elementos existan en el array que se llamarán de acuerdo con el valor del array o combinando un texto con el valor del array.

Espero haberme explicado.

Gracias anticipadas

Saludos
En línea

Miky Gonzalez

Desconectado Desconectado

Mensajes: 87

http://mikygonzalez.comule.com/blog/


Ver Perfil WWW
Re: C++ Crear variables y objetos en tiempo de ejecución
« Respuesta #3 en: 21 Noviembre 2014, 15:06 pm »

Mira el uso de listas enlazadas y pilas. Puedes buscarlo en google.
En línea

Mi blog personal, con información acerca de programación, seguridad, desarrollo y electrónica:


EN CONSTRUCCIÓN
avesudra


Desconectado Desconectado

Mensajes: 724


Intentando ser mejor cada día :)


Ver Perfil
Re:
« Respuesta #4 en: 21 Noviembre 2014, 16:25 pm »

Hombre lo de poner nombre a las variables no se si se puede hacer, creo que no, lo que si puedes hacer es ir declarando punteros y reservando memoria y guardando esos punteros en un vector que luego eliminas, en ese caso es el segundo codigo que te he puesto. Tambien puedes hacer lo que te comenta Miky.
En línea

Regístrate en
rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: C++ Crear variables y objetos en tiempo de ejecución
« Respuesta #5 en: 21 Noviembre 2014, 16:39 pm »

Se crean tantas variables de tipo  string (o int ..) como elementos existan en el array que se llamarán de acuerdo con el valor del array o combinando un texto con el valor del array.
Eso no es posible en C++, en su lugar puedes crear un objeto de la clase map utilizando como clave el valor (texto, entero, etc.) que deseas.

Un saludo
En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
ljma

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: C++ Crear variables y objetos en tiempo de ejecución
« Respuesta #6 en: 22 Noviembre 2014, 23:18 pm »

Muchas gracias a todos!!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines