thể trùng lặp:
Why are redundant scope qualifications supported by the compiler, and is it legal?Có OK để chỉ định phạm vi lớp C++ trùng lặp không?
tôi sẽ không mong đợi điều này để biên dịch nhưng nó. Đây có phải là một lỗi trình biên dịch, hoặc nó có một số ý nghĩa chính xác?
$ g++ -c scopes.cpp
$ cat scopes.cpp
class Log {
public:
Log() { }
static void fn() { }
};
void test() {
Log::Log::Log::Log::Log::Log::fn();
}
$ g++ --version
g++ (Ubuntu 4.4.3-4ubuntu5.1) 4.4.3
Lưu ý phụ: Điều này sẽ không được biên dịch theo VC10. Tuy nhiên, cũng giống như một trình biên dịch chấp nhận mã không chứng minh nó là hợp pháp, cũng chỉ vì một trình biên dịch từ chối mã không có nghĩa là nó là bất hợp pháp. –