Título: oerador de ambito :: o doble dos puntos Publicado por: dewolo en 10 Octubre 2011, 03:12 am http://www.zator.com/Cpp/E4_9_19.htm
http://www.hackingballz.com/herramientas/manual-oficial-de-php/language.oop5.paamayim-nekudotayim.html hola, mirando unos codigos mesurgio una duda sobre un operador que nunca me enseniaron completamente, es el doble dos puntos, por ejemplo en el compilador dentro del main si pongo "::" sale un cartel con algunas opciones, pero en otros codigos mas precisamente en codigos de clases personalizadas, he visto como se llaman a funciones de windows usando ese operador, quisiera saber para que se hace esto, nunca lo supe :-[ por ahi es algo tonto pero no me lo enseniaron :¬¬ (http://img850.imageshack.us/img850/2060/ddp.png) (http://imageshack.us/photo/my-images/850/ddp.png/) Uploaded with ImageShack.us (http://imageshack.us) unos ejemplos que encontree Código: bool CAppGetReso::OnInit() Código: VOID CALLBACK TimerProc(HWND hwnd,UINT uMsg,UINT idEvent,DWORD dwTime) otro ejemplo Código:
Título: Re: oerador de ambito :: o doble dos puntos Publicado por: LearningSpanishProgrammer en 10 Octubre 2011, 03:36 am Eso llama la función que está en global (public, unnamed) namespace
Como las funciones del "stdio.h" y "stdlib.h" Código
Título: Re: oerador de ambito :: o doble dos puntos Publicado por: dewolo en 10 Octubre 2011, 03:43 am hay gracias amigo, si es tal cual como en el ejemplo, ya entendi para que es...
pero mi pregunta seria la siguiente, porque no se le especifica el espacio de nombres o clase a la que pertenece, por ejemplo si fuera de la libreria estandar seria "std::xxxxx" pero en estos casos que te mostre a modo de ejemplo, solo usa el "::" , y otra cosa, en algunas clases como la del ejemplo 2, no tenes un metodo llamado "EnterCriticalSection", y sin embargo en otro metodo de esa clase se llama a esa api usando el "::", por eso, algunas dudas me quedaron ojala me las puedas aclarar. pero lo que mostraste lo entendi bien ;) Título: Re: oerador de ambito :: o doble dos puntos Publicado por: LearningSpanishProgrammer en 10 Octubre 2011, 03:59 am Su duda es MUY buena, me gusta mucho cuando las personas tienen dudas tan buenas.
imagine que tu usa la biblioteca XX que usa EnterCriticalSection "as free function", pero tu tambien usas YY que usa "myfunction::EnterCriticalSection" . Los dos funciones son globales, pero solo myfunction tienes un namespace. Se tu hacer um codigo usando "using namespace myfunction". ¿Cómo podría llamar la "función global"? O entonces, por esto tambien, poderia llamar, por inadvertencia, "myfunction::EnterCriticalSection" cuando en realidad querias "global EnterCriticalSection". Usar :: es una buena pratica Código
Título: Re: oerador de ambito :: o doble dos puntos Publicado por: dewolo en 10 Octubre 2011, 04:10 am (http://smilies-gifs.com/aplaudir/1aplaudir.gif) (http://smilies-gifs.com/aplaudir/13aplaudir.gif) (http://smilies-gifs.com/aplaudir/10aplaudir.gif) (http://smilies-gifs.com/aplaudir/6aplaudir.gif) (http://smilies-gifs.com/aplaudir/5aplaudir.gif)
si al parecer esa es la razon, nunca lo considere, pero si todo lo que dijiste parece tener sentido, y ser la razon por la que se usa, en ese caso seria una buena practica sin duda el usar el "::". si hay algun otro uso de este operador no dejes de contarmelo XD |