[Kde-devel-es] Sockets

Antonio Larrosa Jiménez larrosa at kde.org
Mon Nov 3 17:30:48 CET 2003


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

El Monday 03 November 2003 16:23, l0b0 escribió:
> Muy Buenas...

Hola,

> Estoy tratando de migrar unas funciones a KDE y me he encontrado con el
> siguiente problema.
> Cuando uso la función "connect" para conectar un socket obtengo,
> lógicamente, un error ya que el Kde tiene su propia función "connect"
> para conectar slots y señales. Esto me pone en una situación complicada
> ya que voy algo justo de tiempo y ponerme a desarrollar con QSockets
> (que nunca he usado) puede llevarme demasiado. Mi intención era hacerlo
> funcionar y posteriormete realizar una migración completa usando
> QSockets.
> Alguien conoce alguna manera de hacer funcionar esto?
>

El problema es que cuando ejecutas la función "connect" desde la 
implementación de un método en una clase que hereda de un QObject, la 
función con nombre connect "más cercana" es la de QObject (para ser 
precisos, es la función QObject::connect ), mientras que tú quieres llamar
a la función connect global.

Lo que tienes que hacer es no dejar lugar a error y siempre poner el 
namespace correspondiente a la función que llames cuando esta sea global.
Por lo tanto, usa ::connect(...) para indicar que es la función global la 
que quieres.

Te recomiendo que cambies también las que no te han dado problemas todavía.
Piensa por ejemplo que tuvieras una clase así:
class A
{
  void f()
   {
     ...
// Lee datos de un fichero
     open(...)
     read(...)
     ...
   }
};

y que a los varios meses, decides añadir una función llamada "read" a la 
clase A con parámetros similares. Entonces la función f llamará a la nueva 
función en vez de al read estandar. Sin avisarte, y sin posibilidad de 
verlo hasta que ejecutes el programa, veas que falla y encuentres el 
error.
Por eso recomiendo usar siempre el namespace al llamar a funciones C 
estándares desde C+ (usando ::open(...) y ::read(...) en este caso)

Saludos,

- --
Antonio Larrosa Jimenez
KDE developer - larrosa at kde.org
http://developer.kde.org/~larrosa/
Furious activity is no substitute for understanding.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.2-rc1-SuSE (GNU/Linux)

iD8DBQE/poLU3mWkZZAItZARAp7ZAJ4w8SVrpb2c/tP8/IckzeVxaLR4mwCeMVZ0
ez/7iP4wzCtQDeukwU0AChU=
=jVlS
-----END PGP SIGNATURE-----


More information about the Kde-devel-es mailing list