::
El operador de resolución de ámbito :: permite referencias a un tipo, objeto o función, incluso si su identificador está oculto.
Sintaxis:
::<objeto>
<subespcio>::<objeto>
Ej.- 1
...
int v = 9; //Variable global
int main(void)
{
int v = 15; //variable local
std::cout<<"Valor de v "<<v<<std::endl;
std::cout<<"Valor de v "<<::v<<std::end;
...
return 0:
}
El primer cout imprime 15, valor de la variable local
El segundo cout imprime 9, valor de la variable global
std:: antepuesto a cout y a endl, nos indica que pertenecen al espacio de nombres std que pertenece a la Librería Estándar de C++.
Ej. 2
class Vehiculo
{
private:
char car[20]:
int velocidades;
public:
char * GetCar(void);
void SetVelocidades(int);
};
char * Vehiculo::GetCar(void)
{
return car;
}
void Vehiculo::SetVelocidades(int velocidades)
{
this.velocidades = velocidades;
}
En el ejemplo 2 vemos que al definir las funciones miembro de la clase Vehiculo fuera del cuerpo de la clase, se utiliza el operador de resolución de ámbito para indicar 'la pertenencia a la clase'
char * Vehiculo::GetCar(void)
void Vehiculo::SetVelocidades(int velocidades)