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

 

 


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


  Mostrar Mensajes
Páginas: 1 ... 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 [85] 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 ... 161
841  Programación / Programación C/C++ / Re: C++ Sobrecarga de un operador por medio de un template? en: 8 Mayo 2017, 09:32 am
No deben existir templates para operadores. El hecho es que una sobrecarga de operadores, a vistas de código intermedio, son funciones y no tipos de datos. Los templates existen para adaptar tipos de datos a funciones y hacerlas genéricas. Como tu idea es cambiar a qué función llamar según el operador que quieres pasar la única forma que se me ocurre es mediante el preprocesador.
842  Programación / Programación C/C++ / Re: C++ Sobrecarga de un operador por medio de un template? en: 8 Mayo 2017, 02:16 am
Si miras los errores que lanza el compilador, para el código que tienes, dice:
cpp.cpp:10:47: error: ‘Num Num::operator+(const Num&, const Num&)’ must take either zero or one argument
     Num operator +(const Num &p1,const Num &p2)

Esta sobrecarga, dice el compilador, solo puede tener ningún o un solo argumento. A partir de aquí, una búsqueda rápida por internet te lleva al código correcto para estas sobrecargas.

De todas formas no creo que te deje hacer lo que quieres porqué las plantillas son para adaptar las variables y lo que buscas es adaptar el nombre de un método.
843  Programación / Programación C/C++ / Re: C++ Sobrecarga de un operador por medio de un template? en: 8 Mayo 2017, 01:04 am
Tienes hecha mal la sobrecarga.
A parte de eso puedes hacer uso de algo más primitivo que las plantillas: el preprocesador.

Un ejemplo de cómo hacerlo sería así:
Código
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. class Num
  6. {
  7. public:
  8.    double a, b;
  9.  
  10.    /* Dentro del mismo objeto, o en el archivo de implementación
  11.      * preparo una macro que contendrá el código al que solo deberé
  12.      * pasarle el operador que quiero. Pero cuidado pues el operador
  13.      * deberá ser compatible. Solo sirve para ahorrar código.
  14.      */
  15.  
  16.    #define SET_OP(op)                                                 \
  17.     Num operator op(const Num &p)                                      \
  18.     {                                                                  \
  19.         Num erg;                                                       \
  20.         erg.a = a op p.a;                                              \
  21.         erg.b = b op p.b;                                              \
  22.         return erg;                                                    \
  23.     }
  24.  
  25.    // Hora de usar la macro con cada uno de los operadores.
  26.  
  27.    SET_OP(+);
  28.    SET_OP(-);
  29.    SET_OP(*);
  30.    SET_OP(/);
  31.  
  32.    /* Elimino el símbolo de la macro por si quiero usarla más
  33.      * adelnate con otros operadores u otro tipo de dato.
  34.      */
  35.  
  36.    #undef SET_OP
  37. };
  38.  
  39. int main()
  40. {
  41.    Num num1;
  42. num1.a=1;
  43. num1.b=75;
  44.  
  45.    Num num2;
  46. num2.a=150;
  47. num2.b=175;
  48.  
  49.    Num num1und2 = num1 + num2; // * Modificando acá el operador que cambie arriba la operación
  50.  
  51.   cout << "num1und2 " << "a: " << num1und2.a << ", b: " << num1und2.b << endl;
  52.  
  53.    return 0;
  54. }
844  Programación / Programación C/C++ / Re: Problema con matrices y cadenas. en: 7 Mayo 2017, 17:17 pm
Cuidado con dimensionar arrays a partir de variables,  eso es una dependencia del compilador. El estándar dice que solo se pueden dimensionar con constantes. Para dimensionar con variables debe de forma dinámica.
845  Programación / Programación C/C++ / Re: Listas en C/C++ en: 7 Mayo 2017, 00:45 am
Tal vez te interese usar la función de biblioteca qsort.
846  Programación / Programación C/C++ / Re: porque no compila este codigo en: 6 Mayo 2017, 20:37 pm
Debes estar detrás de C11 así que gets no existe.
Por lo demás ficha no es un array, pero lo tratas como tal.
847  Programación / Programación C/C++ / Re: Agregar datos a mensajes de error en archivos con lenguaje C. en: 6 Mayo 2017, 18:17 pm
C provée un mecanismo para el control de errores. Como sabes las funciones devuelven información con de lo que han hecho o un código de error si no han conseguido realizar un trabajo. Además hay una variable local llamada errno que indica el último fallo ocurrido y por eso siempre debes comprobarla después de llamar a la función que te interesa controlar. Hay diferentes funciones para ello. Te recomiendo seguir el siguiente artículo: https://www.tutorialspoint.com/cprogramming/c_error_handling.htm
848  Programación / Programación C/C++ / Re: Ayuda base de datos que controle tasa de natalidad y mortalidad de animales en: 4 Mayo 2017, 18:28 pm
Supongo que animal tendrá un campo fecha para marcar su nacimiento y un campo fecha para marcar su muerte. Pues dado un año recorre todos los animales y suma todos los que el nacimiento coincide con ese año y por otra parte suma a todos los animales que murieron ese año.
849  Programación / Programación C/C++ / Re: Libro más recomendable para aprender C en: 4 Mayo 2017, 00:21 am
A parte del estándar de C, para saberlo manejar en su extensión (es más como el manual de un coche, no te dice cómo conducir pero sabrás manejar todos los extras), te recomiendo el libro Prentice Hall - Expert C Programming. Deep C Secrets qué es como un libro de autoescuela (te nombra lo básico de un coche pero te dice como llevarlo por la carretera).
850  Programación / Programación C/C++ / Re: Problema con un void en: 4 Mayo 2017, 00:08 am
Limpia el buffer de entrada poniendo después del scanf
Código:
while(getchar()!='\n');
Páginas: 1 ... 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 [85] 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 ... 161
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines