que probé en dos compiladores, y se sorprendió al ver tanto compatibles con los siguientes definición sin queja:¿Por qué las cualificaciones de alcance redundante son compatibles con el compilador y es legal?
class A {
A();
};
A::A::A() {}
^^^
Tenga en cuenta que esto también sucede para los métodos, a pesar de que se encuentra en posición cuando la declaración es sobre-calificado.
Preguntas:
- Es ésta un programa válido en C++?
- Si es así, ¿para qué sirve? ¿O es simplemente un subproducto?
Detalle Actualizado:
En caso de que la pregunta original no estaba claro o demasiado corto: Tengo curiosidad por qué se permiten las calificaciones redundantes en la definición (énfasis añadido también más arriba).
Clang de un Apple GCC 4.2 + LLVM fueron los compiladores
Esto ha sido preguntado, pero creo que es más difícil de encontrar que algunos. – chris
@chris miré algunas páginas, pero no encontré nada; me alegro de cerrar si se encuentra un dúplex. quizás simplemente no busqué utilizando los términos adecuados. – justin
Esto * podría * ayudar: http://stackoverflow.com/questions/11423380/why-are-redundant-class-name-qualifiers-allowed – chris