Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - ivancea96

#711
Si lo que quieres es programar aplicaciones en Android, lo mejor sería Android Studio.

Para NetBeans y Eclipse hay plugins para trabajar también, pero Android Studio está dedicado a Android.

Xamarin es multi-plataforma. Con él, puedes crear proyectos para Windows Phone y Windows 10, Android e iOS. Si solo quieres generar aplicaciones para Android, probalemente no te interese, además de que tiene un toque extra de complejidad.

En fin, sin duda, en tu lugar, elegiría Android Studio.

Si ya has programado Android, y quieres aplicaciones para iOS o Windows, entonces sí te diría que Xamarin. Ocurre que en Xamarin hay que controlar la estructura de Android y, además, la estructura de Xamarin en sí.
#712
Programación C/C++ / Re: [Error] Tabla Hashing
17 Febrero 2017, 09:30 AM
El cuerpo debes dárselo en el hpp.

Los templates se compilan por cada combinación de tipos que le des. Si no se le da ningun tipo (como ocurre en el .cpp, por ejemplo), no se compila. Entonces, cuando compilas el main, no encuentra el template <int> en ningún lado (porque no ha sido compilado).

Poniéndolo en el .hpp se compila en cada lugar en que hagas el include, y por tanto, se compila todo lo que se necesita.
#713
Sí.

Como te digo, si sigues con problemas, explica exactamente qué problema tienes. Dime exactamente en qué líneas tienes el problema o exactamente que no logras hacer.

Actualmente, tal como lo tienes, la herencia y el vector no tienen nada que ver entre sí.

Sino, explica qué es lo que quieres conseguir con esas clases; qué representan esas clases y por que una hereda y tiene un vector.
#714
Programación C/C++ / Re: [Error] Tabla Hashing
16 Febrero 2017, 18:32 PM
No puedes definir templates en un .cpp y usarlos desde fuera.
El cpp se compila antes que el main. Por tanto, los templates que no uses ahí (TablaHash<int>, por ejemplo), no se va a compilar.

Tendrás que pioner esos templates en el hpp, sin el cpp.
#715
Pues lo dicho. Ya tienes los métodos getter públicos. ¿Qué más necesitas?
#716
Tú estás dando un char* mientras que la función pide un wchar_t* (wide char).
Para colocar una constante así, utilizas 'L' antes de la cadnea:
Código (cpp) [Seleccionar]
wchar_t* var = L"Cadena de wide char";
#717
Ahí veo que has hecho ya los getters. ¿No te sirven?


La última opción (que no te recomiendo en absoluto aquí, no debería ser necesaria), es utilizar friend. Con friend haces que una clase tenga acceso a todo lo privado y protected de otra. https://en.wikipedia.org/wiki/Friend_class
#718
Código (cpp) [Seleccionar]
"/c taskkill /f /im "+i
"" es un const char*. i es un int. En otros lenguajes sí, pero en C++ no puedes sumarlo con el resultado que esperas. Tendrás que convertir la i a string, por ejemplo:

Código (cpp) [Seleccionar]
"/c taskkill /f /im "+to_string(i)


Eso generará otro problema, y es que const char* + string = string, pero ShellExecuteA espera un const char*. Para convertir de string a const char*, existe el método de string c_str():

Código (cpp) [Seleccionar]
( "/c taskkill /f /im "+to_string(i) ).c_str()

Con eso debería estar. (No me fijé en si hay otros problemas)


Mientras escribía veo que ya pusiste el to_string. Falta pues, el c_str().
#719
protected es un nivel de protección igual que private con el añadido de que las clases que heredan pueden verlo también.

Patient no hereda, por tanto, que sea protected o private viene siendo lo mismo.

Si quieres obtener el valor, tendrás que hacer métodos getter que retornen el valor o poner los campos como public.

La pregunta es, ¿por qué necesitas que sean protected esos campos? Si nunca heredas de la clase, es como una clase sin campos visibles.


Y luego, no puedes poner esto:
Código (cpp) [Seleccionar]
cout << "Name Patient: " << pDB[i] << endl;
No puedes sacar así por pantalla una "Person". hay formas de lograr que se haga así, pero es algo un poco más "avanzado". En ese caso, deberías usar pDB[ i ].fname, por ejemplo (suponiendo que haces el campo público). Sinó, pDB[ i ].getFName() si usas un getter.


Y como detalle, en vez de stdio.h, utiliza cstdio. (Igual que utilizas cstdlib en vez de stdlib.h). Son las librerías de C++.
#720
&& y || trabajan como si fuera lógica booleana. true && true == true.
Cualquier número que sea diferente a 0, será true. Si es 0, será false. Así que ahi tienes el msiterio.

A = 5; B = 6
A && B -> true && true -> true -> 1