Tôi có một trường hợp kỳ lạ với Visual Studio 2003. Vì lý do nào chính đáng, tôi có hệ thống phân cấp như sau:Sai tên độ phân giải khi phụ huynh và lớp bên trong có cùng tên
class A {};
class B : public A {
public:
class A {};
};
class C : public B::A {};
Đó là, tôi có một nội lớp có cùng tên với cha mẹ của lớp bên ngoài. Khi C
cố gắng kế thừa từ B::A
, Visual Studio nghĩ rằng tôi đang trỏ đến lớp cha A
, không phải lớp lồng nhau trong phạm vi B
. GCC dường như giải quyết cho phiên bản lớp bên trong như tôi mong đợi
Đây có phải là lỗi của Visual Studio 2003 hay tôi đang làm sai? Có cách giải quyết khác (ngoài nâng cấp Visual Studio) không?
Visual C++ 2003 được phát hành cách đây chín năm. Nó sẽ được khuyến khích để nâng cấp cho rất nhiều lý do. –
@JamesMcNellis Nếu tôi chịu trách nhiệm về những điều này, chúng tôi đã nâng cấp từ lâu rồi, nhưng thật đáng tiếc tôi không phải là –