Autor
|
Tema: Como asignar tiupo a muchas variables (Leído 4,467 veces)
|
CBFD
Desconectado
Mensajes: 12
|
Hola a todos:
Soy nuevo en C++ y todavía muy torpe, vengo de otro lenguaje y estoy tratando de usar el máximo de código y de funciones que hacía en él, paso a explicar una de ellas:
Yo podía definir el nombre de una variable poniéndola en otra y precediéndola del símbolo &.
Por ejemplo: { i = 1 for( int a = 1; a < 1000; a = a + 1 ) { var01 = "intvar"+str(a) int &var01 } }
Donde str() es una función que convierte un numero en caracteres para formar los nombres desde intvar0001 a intvar1000 e int &var01 lo que hacia era iniciar la variable de como se llamaba var01 en ese momento como int y así conseguía iniciar 1000 variables con un código pequeño.
Si alguien puede ayudarme muchas gracias.
Carlos
|
|
|
En línea
|
|
|
|
Maik33
Desconectado
Mensajes: 128
|
¿Y no es más fácil crear un array o puntero para almacenar los datos? int a[1000]; int i ; for (i = 0; i < 1000; i++) { a[i] = 0; }
|
|
|
En línea
|
|
|
|
CBFD
Desconectado
Mensajes: 12
|
Hola y gracias por tu interés:
Lo que muestro es un ejemplo para hacerme entender lo que deseo es si existe una manera de hacer eso poner el símbolo & (u otro o de otra manera) delante de una variable y que lo que se cree, ejecute, inicialice sea lo que vale la variable y no la variable (intvar0001 en vez de var01) en C++ para reutilizar mucho código ya creado.
Un saludo
Carlos
|
|
|
En línea
|
|
|
|
ivancea96
Desconectado
Mensajes: 3.412
ASMático
|
Eso no lo podrás hacer ne C++ como dices. Aquí las variables las declaras con código, no hay maneras rápidas de ese tipo. Para esa clase de cosas, deben usarse arrays (en C++, y en cualquier otro lenguaje, no creo que ese método sea muy recomendable, puesto que si quieres crear tantas variables segudas, esas variables van a tener un uso parecido). Así que array. Y como dato, en C++ poner & al declarar una variable genera un ""alias"".
|
|
|
En línea
|
|
|
|
MAFUS
Desconectado
Mensajes: 1.603
|
¿Qué lenguaje es ese? en verdad quiero saberlo.
|
|
|
En línea
|
|
|
|
CBFD
Desconectado
Mensajes: 12
|
Hola MAFUS y ivancea96:
Es Clipper con las librerías Fivewin y harbour, y todas son librerías de c++ que se tienen compilar con borland de embarcadero.
Os repito lo de las 1000 variables es un ejemplo otro podría ser el uso de una base de datos:
Imaginemos que cada año tenemos que usa unos límites de cotización para aplicar a las nóminas y los tenemos en una base los del 2015 en "base2015" los de 2016 en "base2016". Si yo creo: base = "base" + ejercicio
y luego
use &base
dependiendo de la variable "ejercicio" obtendremos los límites de 2015 o 2016.
O imaginemos que llamas a una función y dependiendo desde donde la llames vuelva a otra para continuar con un proceso:
void uno() { sitio = "CUATRO()" tres() }
void dos() { sitio = "CINCO()" tres() }
void tres() { run &sitio }
Dependiendo de si viene de uno o de dos va a cuatro o cinco.
Un saludo
Carlos
|
|
|
En línea
|
|
|
|
MAFUS
Desconectado
Mensajes: 1.603
|
Entiendo. Vienes de un lenguaje que es dinámico donde una variable puede contener cualquier tipo de dato. Deberás cambiar tu forma de pensar. C/C++ son lenguajes estáticos, no sé si ahora C++ usa la palabra clave var en la que el propio lengauje puede adivinar que tipo otorgar al dato, lo que significa que de antemano debes saber qué tipo de dato guardará la variable. Si tienes paciencia en tu estudio y llegas a punteros a void, y en C++ a las plantillas verás que hay un comportamiento algo parecido a lo que dices. Pero en verdad, en tiempo de diseño, deberás elegir que tipo deben ser tus variables.
|
|
|
En línea
|
|
|
|
CBFD
Desconectado
Mensajes: 12
|
Hola MAFUS:
Yo en todo momento se que tipo son las variables.
Imaginate:
int var01; int var02 = 1; char[6] var03 = "var04"; int var04 = 4;
var01 = var02 + &var03;
y lo tendría que hacer es var01 = var02 + var04.
Un saludo
Carlos
|
|
|
En línea
|
|
|
|
MAFUS
Desconectado
Mensajes: 1.603
|
No existe tal mecanismo en C. Pero puedes usar punteros. int var01; int var02 = 1; int *var03; int var04 = 4; var03 = &var04; /* No se podía hacer antes la asignación porque var04 no existía */ var01 = var02 + *var03;
|
|
|
En línea
|
|
|
|
CBFD
Desconectado
Mensajes: 12
|
Gracias MAFUS por tus aclaraciones.
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
[BATCH] asignar variables con set desde un for /f[Solucionado]
Scripting
|
haveavigar
|
5
|
7,233
|
14 Enero 2011, 20:31 pm
por leogtz
|
|
|
asignar variables en .bat
Scripting
|
viejari
|
4
|
8,431
|
31 Mayo 2012, 00:03 am
por viejari
|
|
|
Asignar variables de un webbrower aVB.
Programación Visual Basic
|
Menal_mur
|
0
|
1,566
|
19 Agosto 2013, 17:25 pm
por Menal_mur
|
|
|
[SHELL Linux] Cómo definir muchas variables de entorno en base a un archivo?
Scripting
|
Skeletron
|
2
|
2,698
|
14 Enero 2014, 22:02 pm
por Eleкtro
|
|
|
Asignar valores de un fichero a variables de una funcion
Programación C/C++
|
joelujos
|
0
|
1,847
|
6 Diciembre 2015, 00:13 am
por joelujos
|
|