tôi thử nghiệm trên hai trình biên dịch, và rất ngạc nhiên khi thấy cả hai hỗ trợ sau nét mà không phàn nàn:Tại sao trình độ phạm vi dự phòng được trình biên dịch hỗ trợ và nó có hợp pháp không?
class A {
A();
};
A::A::A() {}
^^^
Lưu ý rằng điều này cũng thành công cho các phương pháp, mặc dù nó được gắn cờ khi khai báo là quá đủ điều kiện.
Câu hỏi:
- này một chương trình hợp lệ C++ là?
- Nếu có, mục đích của nó là gì - hoặc nó chỉ là sản phẩm phụ?
Cập nhật chi tiết:
Trong trường hợp các câu hỏi ban đầu là không rõ ràng hoặc quá ngắn: Tôi tò mò tại sao trình độ dư thừa được phép trên nét (nhấn mạnh cũng nói thêm ở trên).
Clang một của Apple GCC 4.2 + LLVM là trình biên dịch
Điều này đã được hỏi, nhưng tôi đoán nó là một khó khăn hơn để tìm hơn một số. – chris
@chris tôi đã xem qua một vài trang, nhưng không tìm thấy gì cả - vui lòng đóng nếu có một bản nằm. có lẽ tôi chỉ không tìm kiếm bằng cách sử dụng các điều khoản thích hợp. – justin
Điều này * có thể * trợ giúp: http://stackoverflow.com/questions/11423380/why-are-redundant-class-name-qualifiers-allowed – chris