• Martes 14 de Abril de 2026, 06:22

Mostrar Mensajes

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


Mensajes - Demenus

Páginas: [1]
1
Python / Re:Constructores en Python
« en: Miércoles 11 de Abril de 2012, 00:58 »
Bueno en Python si es cierto que no existe la sobrecarga y lo que se usa como solución a ello son los parámetros por defecto

Código: Python
  1. class Cons:
  2.     def __init__(self, a=None, b=None, c=None):
  3.         self.a, self.b, self.c = a, b, c
  4.         if a:
  5.             print("Se recibió un entero con valor",a)
  6.         elif b:
  7.             print("Se recibió un double con valor",b)
  8.         elif c:
  9.             print("Se recibió una string con valor",c)
  10.         else:
  11.             print("Constructor sin parámetros")
  12.  

O también podrías usar la función isinstance que viene incluida en la biblioteca standard de python

Código: Python
  1. class Cons:
  2.     def __init__(self, param):
  3.         self.param = param
  4.         if isinstance(param, int):
  5.             print("Se recibió un entero con valor",param)
  6.         elif isinstance(param, float):
  7.             print("Se recibió un double con valor",param)
  8.         elif isinstance(param, str):
  9.             print("Se recibió una string con valor",param)
  10.         else:
  11.             print("Constructor sin parámetros")
  12.  

La verdad es que para estas cosas de la sobrecarga Python no se ve tan bonito como para otras jajaja
Espero haberte ayudado

2
C/C++ / Re: Problema con puntero a función miembro
« en: Sábado 10 de Abril de 2010, 16:07 »
Sí lo usé, pero esto es una pruebita que estoy haciendo para un proyecto mayor, y el usar métodos estáticos me dificulta después el uso de miembros en el caso de instanciar varios objetos (o al menos eso creo, que podría haber cierto conflicto)
Aún así ya he resuelto mi duda utilizando un void (foo:: *funcion)(); en vez de void *funcion() como tenía.
Gracias de todas formas

3
C/C++ / Problema con puntero a función miembro
« en: Sábado 10 de Abril de 2010, 05:51 »
Bueno, resulta que estoy intentando crear un array con una estructura que almacene un nombre y una "función"
En Python estoy acostumbrado a que todo se guarde como una dirección de memoria y quede muy bonito y muy sencillo, pero con C++ estoy teniendo problemas a la hora de intentar guardar una función miembro dentro del campo para funciones de la estructura.
(Perdón si no me expreso muy bien con los términos pero es que soy autodidacta y todavía no he llegado a distinguir esos matices del todo XDD
Bueno aquí les dejo el código que me tira el error en cuestión
Código: C++
  1. #include<iostream>
  2. using namespace std;
  3.  
  4. class foo {
  5.     public:
  6.         foo();
  7.    
  8.         typedef struct {
  9.             string nombre;
  10.             void *funcion();
  11.         } lista_nombres;
  12.  
  13.         void function()
  14.         {
  15.             cout<<"hola mundo"<<endl;
  16.         }
  17.  
  18.         void function2()
  19.         {
  20.             cout<<"hola mundo 2"<<endl;
  21.         }
  22.  
  23.         lista_nombres list[2];
  24.  
  25. };
  26.  
  27. foo::foo()
  28. {
  29.     list[0].nombre="uno";
  30.     list[0].funcion=&function;
  31.     list[1].nombre="dos";
  32.     list[1].funcion=&function2;
  33.    
  34.     list[0].funcion();
  35.     list[1].funcion();
  36. }
  37.  
  38. int main()
  39. {
  40.     foo elemento();
  41. }
  42.  


El error que me tira es este:
Código: Text
  1. prueba.cpp: In constructor ‘foo::foo()’:
  2. prueba.cpp:32: error: ISO C++ forbids taking the address of an unqualified or parenthesized non-static member function to form a pointer to member function.  Say ‘&foo::function’
  3. prueba.cpp:32: error: invalid use of member (did you forget the ‘&’ ?)
  4. prueba.cpp:34: error: ISO C++ forbids taking the address of an unqualified or parenthesized non-static member function to form a pointer to member function.  Say ‘&foo::function2’
  5. prueba.cpp:34: error: invalid use of member (did you forget the ‘&’ ?)
  6.  
  7.  
  8.  

He intentado seguir las sugerencias del compilador pero... sin resultados.
Muchas gracias de antemano

4
Visual C++ / Re: ¿Como muestro la consola?
« en: Jueves 18 de Febrero de 2010, 16:58 »
Probé con AllocConsole, me abre una consola, pero no escribe nada en ella no se por qué.
Probé con un ejemplo sencillito para ver como funcionaba esa función:
Código: C++
  1. #include<windows.h>
  2. #include<iostream>
  3.  
  4. using namespace std;
  5.  
  6. int main(int argc, char *argv[])
  7. {
  8.     cout<<"hola"<<endl;
  9.         AllocConsole();
  10.     cout<<"adios"<<endl;
  11.  
  12.     return 0;
  13. }
  14.  
Y me tira este error
Código: Text
  1. 1>MSVCRT.lib(crtexew.obj) : error LNK2019: símbolo externo _WinMain@16 sin resolver al que se hace referencia en la función ___tmainCRTStartup
  2.  
Y sin embargo compilé con g++ y todo funcionó bien
(Tengo la impresión de que windows no me tiene amor...)

5
Visual C++ / ¿Como muestro la consola?
« en: Miércoles 17 de Febrero de 2010, 23:37 »
Veran, estoy haciendo una aplicación de Win32 y el caso es que todo es visual, y estoy acostumbrado en linux a cuando quiero visualizar el valor de una variable con un "cout<<variable;"
me va pues bastante bien, en visual c++ lo he probado pero no me abre ninguna consola y no se que hacer para que se abra una consola.
Creo que debe ser alguna opción en el mismo Visual C++ pero soy totalmente ignorante en este campo XDD

Perdón si he dicho alguna tontería explicandome y gracias por responder.

Páginas: [1]