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

#381
Un array, para usaarlo, tienes siempre que crearlo primero. new Persona[5], por ejemplo.

Luego, si resutla que quieres agregar 1 elemento, tendrás que crear otro array de 6 elementos y copiar los 5 primeros del anterior array.

Para hacer esto ya hay un método, Array.Resize:
Código (csharp) [Seleccionar]
Array.Resize(ref array, 6);
Este método se encarga de copiar los elementos del array anterior al nuevo. Al ir por referencia, no hace falta que cambies el contenidod e tu array ni nada.
#382
Tienes operadores para convertir tipos. Su declaración es:
Código (cpp) [Seleccionar]
operator <tipo>();
operator int();


Aquí es importante ver la importancia de la palabra "explicit":
Código (cpp) [Seleccionar]
explicit operator int();

Con explicit, solo podrás hacer la conversión haciendo un cast manualmente (por ejemplo, (int)a)

Un ejemplo de todo esto:
Código (cpp) [Seleccionar]
#include <iostream>

using namespace std;


class A {
public:
   operator int(){
       return 1;
   }

   explicit operator const char*(){
       return "_1";
   }
};

int main(){
   A a;

   int n = a;

   const char* c = (const char*)a;
   
   cout << a << c << endl;
}


De todos modos, cuidado con implementar estos operadores sin la palabra explicit. En caso de errores o confusiones, estos operadores pueden ocultar el error. Por ejemplo:
Código (cpp) [Seleccionar]
class A {
public:
   operator int*(){
       return nullptr;
   }
};

int main(){
   A a;

   void* n = &a;
   void* m = a; // Nos hemos olvidado el ampersand, y como la conversión de int* a void* es implícita también, no da problema.
}



Siempre que implementes estos operadores, suele ser buena idea proveer además un método "normal" de conversión, tipo "getCString()"
#383
Programación C/C++ / Re: Aprender a usar APIS
2 Agosto 2017, 00:47 AM
Una "API" no la utilizas porque sí. Ha de haber alguna razón por la cuál la quieras utilizar. Una librería no la usas porque sí, la usas porque te conviene ya sea porque implementa algoritmos que te libras de implementar tú (librería estándar de C++, por ejemplo), ya sea porque te maneja el acceso a servicios o al propio sistema operativo (API de windows), porque envuelve otros temas de una forma más manejable (SDL, SFML, librerías de vídeo o audio)...

Te recomiendo que busques un punto, lo enfoques, y avances hacia él. Busca un proyecto que te interese hacer. Cuanto menos complejo, mejor. Cuando lo acabes, podrás avanzar en otra dirección.
¿Quieres hacer una ventana con gráficos? ¿Descargar o servir páginas web? ¿Algún proyecto o <necesidad> que tengas en mente? (al fin y al cabo, se programa para solventar necesidades)

Una vez sepas qué quieres hacer, mira qué no sabes hacer. Y aquí estamos para guiarte en cómo lo podrás hacer. Y quien sabe, quizás te recomendemos usar una API ;D
#384
Foro Libre / Re: Cumpleaños
1 Agosto 2017, 16:37 PM
Felicidades Engel lex! Y ahora, pongamos unas frases famosas de Engel:



· Los códigos deben ir en etiquetas GeSHi
· Los títulos deben ser descriptivos
>aquí las reglas del foro
-Engel Lex, con cariño
#385
Si pones >> estás leyendo de fic4 y guardando en fac. Suponiendo que fic4 no exista, esté vacío o tenga la factura como tú se la hayas escrito anteriormente, ¿qué es lo que pretendes que guarde en "fac"?
#386
Por qué este:
Código (cpp) [Seleccionar]
fin4>>fac;

En cualquier caso, después de abrir cada archivo con open, deberías poner un:
Código (cpp) [Seleccionar]
if(ficN.fail()){
    // Error al abrir el archivo
}

Para asegurarte de que lo ha abierto correctamente. Mera comprobación.

Del mismo modo, si solo vas a leer de un archivo, no hace falta que pongas la flag ios::out. Trata de ser lo más extricto posible con las flags.

Otro detalle es que no necesitas según veo 4 fstreams. Dado que abres y cierras siempre, puedes usar la misma variable.
#387
No he dicho que fuera a funcionar diferente (...)
#388
Cita de: Meta en 31 Julio 2017, 20:51 PM
Que majadero trabajar en C++- Con razón que hoy en día solo lo hacen los que se acostumbraron en el pasado.

Con todo el respeto, no saber C++ no hace C++ un mal lenguaje.

Y bueno, es mala prácctica meter los case dentro de las llaves. Debería ser:

Código (cpp) [Seleccionar]
switch(a){
    case 1:
    {
        // Código
    }
}
#389
Y si aun tuvieras problemas, mira la documentación del código de error.
https://docs.microsoft.com/en-us/cpp/error-messages/compiler-errors-1/fatal-error-c1854
#390
Foro Libre / Re: Posthumanismo
31 Julio 2017, 19:22 PM
La evolución no sale solo de mutaciones y combinaciones genéticas naturales.