Ho accidentalmente trovato questo in uno dei codici sorgente che stavo guardando. Quindi, sto dando un esempio più piccolo simile qui.Operatore di risoluzione dell'oscilloscopio
Nel file test.h:
#include<iostream>
class test{
int i;
public:
test(){}
//More functions here
};
Nel file test.cpp:
#include "test.h"
int main()
{
test test1;
test::test test2;
test::test::test test3;
return 0;
}
Prima di tutto, c'è un motivo per dichiarare test2
in quel modo? In secondo luogo, questo codice viene compilato correttamente nella versione 4.4.3 e versioni precedenti di g ++. C'è qualcosa nello standard C++, dicendo, gli operatori di risoluzione scope vengono ignorati quando non è necessario risolvere l'ambito?
Haha, ancora meglio + 1. Mi ha fatto perplesso. –
D'accordo, +1 in effetti sono tentato di scrivere una risposta solo per chiarire. Ciao James! –
+1 Nice find ... –