|
1862
|
Programación / Programación C/C++ / Re: JS call() o apply() en c++
|
en: 9 Septiembre 2015, 15:48 pm
|
Una función static: class Clase{ public: static void func(Clase* _this, int param1, string param2); };
Si quieres un call para cualquier función, pues: enum ClaseMethods{ CLEAR, ADD } class Clase{ public: static void call(Clase* _this, ClaseMethods function, ...){ switch(function){ case CLEAR: _this->clear(); break; case ADD: int var = *(int*)&((&function)[1]); _this->add(var); break; } };
Bueno, es un ejemplo a mano alzada. No sé si es lo que buscabas (?)
|
|
|
1865
|
Programación / Programación General / Re: Como procesa la maquina o el programa el valor de retorno??
|
en: 9 Septiembre 2015, 00:16 am
|
Olvida eso de volver al principio de la función, no tiene que ver. Realmente, deberías olvidarte de la función main de momento, y seguir. http://v1.minidosis.org/C++/Subprogramas/Varias%20Funciones%201/¿Por donde viaja el retorno de una función? Lo de retorno no es más que una abstracción para simplificar la realidad. Y la realidad, que es lo que verás si llegas a programar ensamblador, es que "llamar a una función X, con unos parámetros A y B", es mover los parámetros A y B a registros de la CPU (o a la pila, según), y saltar a la dirección de la función.
Ahora veamos: cuando la función va a "devolver un valor", lo que hace es, generalmente, meter ese valor en un registro de la CPU. Una vez ahí guardado, retorna al punto desde el que fue llamado, y continúa por ahí. El retorno, estará guardado en el registro, y será utilizado por el programa de la manera que considere. Hasta te recomendaría que aprendieses ensamblador, puesto que es lo más básico y simple, y no hay nada "oculto". Todo es como es, y como tal lo ves.
|
|
|
1866
|
Programación / Programación C/C++ / Re: Cambiar de String a natural
|
en: 8 Septiembre 2015, 23:27 pm
|
Si te doy un conjunto de datos (en papel), del tipo: Primera cifra: 1 Segunda cifra: 8 Tercera cifra: 4 ¿Sabrías, mediante operaciones aritméticas (concatenar no vale), formar el número? Si la respuesta es sí, solo tienes que hacer eso mismo con código. Dado un caracter '5', para convertirlo al número 5, tienes que restarle el valor ascii del 0. El valor ascii del 0 es 48, pero en C++ puedes poner simplemente: char c = '5'; int n = c - '0';
Ahora "n" es 5. Haces eso cada vez que necesites el valor numérico de un caracter. Luego, si no sabes convertir una cadena a un número, es: Cifras: 5 4 8 6 Numero = 5*10^3 + 4*10^2 + 8*10^1 + 6*10^0 O, abstrayendo el concepto: Por cada cifra: Numero = Numero + cifra*10^indice Siendo el indice la posicion de la cifra, empezando desde 0 desde la derecha
|
|
|
1867
|
Programación / Programación C/C++ / Re: Leer y operar bisección con una función
|
en: 8 Septiembre 2015, 22:25 pm
|
Como dijo someRandomCode, tendrás que parsear la ecuación. Tendrás que interpretar la cadena de caracteres, y de ahí sacar las operaciones (manteniendo prioridad en los operadores), los coeficientes, y las variables. Salvo que solo lo quieras hacer con ecuaciones que sigan un patrón (Ej. "aX^2+bX+c"), tendrás que interpretarlo con todas sus posibilidades, y eso ya te va a llevar más tiempo.
Si real, realmente quieres hacerlo ahora, te aconsejo apartarte de ese proyecto momentaneamente y ponerte con lo otro. Pensar en cómo lo harás, pensar en cómo mantendrás el orden de los paréntesis, en como cambiarás las variables por tus valores, etc.
Para ver operadores, solo es comparar los caracteres (str[ i ] == '+'), y los números los separas y conviertes a variables enteras o flotantes con el set de funciones <stof, stoi...>.
Dale tiempo a pensar el algoritmo.
|
|
|
1868
|
Programación / .NET (C#, VB.NET, ASP) / Re: [C#] ¿Cómo funciona Using()?
|
en: 8 Septiembre 2015, 22:16 pm
|
Si has programado C++, conocerás los bloques de llaves {}. En estos bloques, las variables que se declaran dentro, "desaparecen" al salir del contexto del bloque. Las variables declaradas dentro de los paréntesis de using (que serán variables que heredan de IDisposable) tienen asegurado que se llamará a su método Dispose().
Para más información, mira la intefraz IDisposable y el método Dispose, así como su utilidad en elementos del lenguaje C#.
|
|
|
1869
|
Programación / .NET (C#, VB.NET, ASP) / Re: [C#] ¿Cómo funciona Using()?
|
en: 8 Septiembre 2015, 20:29 pm
|
El using llama al método Dispose() al salir del bloque, lo que asegura que se liberarán recursos al finalizar el bloque.
Pero bueno, no digo nada que no ponga en MSDN.
Puedes utilizarlo con clases que hereden de IDisposable.
|
|
|
|
|
|
|