C/Visual C - operador de resolucion de alcance

 
Vista:

operador de resolucion de alcance

Publicado por Hugo Erazo (1 intervención) el 17/07/2003 08:44:02
deseo saber cual es y como se utiliza este operador de resolucion de alcance o bien de ambito
alguien que me pueda ayudar
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:operador de resolucion de alcance

Publicado por chuidiang (677 intervenciones) el 17/07/2003 15:27:51
Consiste en poner delante de la llamada a un método el nombre de la clase a la que pertenece.
Por ejemplo, si la clase A tiene un metodo funcion(), se pondría

A::funcion();

Si es una clase normal y un metodo normal, no tiene mucho sentido. Este operador cobra sentido con:
- metodos estáticos (static). No hace falta instanciar la clase para llamar al método y hay que llamarlo poniendo delante el nombre de la clase
class A
{
public:
static void funcion();
};
Se puede llamar a
A::funcion();
pero no a
funcion();

- Método con el mismo nombre existente en varias clases que heredan unas de otras. Por ejemplo, A hereda de B y esta a su vez de C. Todas tienen el metodo funcion(). A la hora de llamar al metodo funcion(), C++ tiene una reglas para decidir a cual de los tres llama. Con el operador de ambito puedes decir explicitamente a cual quieres llamar. Aunque hay muchas posibilidades, te pongo un ejemplo.

C c = new A();
c->funcion(); /* Esto llama a funcion() de A */
B::c->funcion(); /* Esto llama a funcion() de B, no te fies mucho de la sintaxis, que no he podido comprobarla */

Se bueno.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar