Я случайно случайно обнаружил это в одном из исходных кодов, на которые я смотрел. Итак, я приводил здесь небольшой пример.
В файле test.h:
#include<iostream>
class test{
int i;
public:
test(){}
//More functions here
};
В файле test.cpp:
#include "test.h"
int main()
{
test test1;
test::test test2;
test::test::test test3;
return 0;
}
Прежде всего, есть ли причина объявить test2
таким образом? Во-вторых, этот код отлично компилируется в g++ версии 4.4.3 и более низких версиях. Есть ли что-то в стандарте С++, говоря, что операторы разрешения области действия игнорируются, когда нет необходимости в разрешении области?