Accidentalmente encontré esto en uno de los códigos fuente que estaba viendo. Entonces, estoy dando un ejemplo más pequeño similar aquí.Operador de resolución de alcance
En el archivo test.h:
#include<iostream>
class test{
int i;
public:
test(){}
//More functions here
};
En el test.cpp archivo :
#include "test.h"
int main()
{
test test1;
test::test test2;
test::test::test test3;
return 0;
}
En primer lugar, hay una razón para declarar test2
de esa manera? En segundo lugar, este código compila muy bien en g ++ versión 4.4.3 y versiones más bajas. ¿Hay algo en el estándar de C++ que indique que los operadores de resolución de alcance son ignorados cuando no hay necesidad de resolver el alcance?
Haha, incluso mejor + 1. Me dejó perplejo. –
De acuerdo, +1 de hecho estoy tentado de escribir una respuesta solo para aclarar. ¡Salud, James! –
+1 Buen hallazgo ... –