Tôi vô tình tình cờ tìm thấy điều này trong một trong các mã nguồn mà tôi đã xem. Vì vậy, tôi đưa ra một ví dụ nhỏ hơn tương tự ở đây.Nhà điều hành giải pháp phạm vi
Trong tập tin test.h:
#include<iostream>
class test{
int i;
public:
test(){}
//More functions here
};
Trong tập tin test.cpp:
#include "test.h"
int main()
{
test test1;
test::test test2;
test::test::test test3;
return 0;
}
Trước hết, là có một lý do để tuyên bố test2
như vậy? Thứ hai, mã này biên dịch tốt trong phiên bản g ++ 4.4.3 và các phiên bản thấp hơn. Có một cái gì đó trong tiêu chuẩn C + +, nói rằng, các nhà khai thác độ phân giải phạm vi được bỏ qua khi không có cần phải giải quyết phạm vi?
Haha, thậm chí tốt hơn + 1. Nó khiến tôi bối rối. –
Đồng ý, +1 thực sự tôi bị cám dỗ để viết một câu trả lời chỉ để làm rõ. Chúc mừng James! –
+1 Nice find ... –