尝试在 Visual Studio (2010) 中编译我的代码时遇到了一个奇怪的问题;这是一个孤立的(和简化的)示例:
class A
{
public:
enum {
VALUE = 0
};
};
namespace ns
{
class A;
class B
{
public:
B(int val = ::A::VALUE) // this line
{}
};
class A : public ::A
{
public:
};
}
这给出了以下错误:error C2027: use of undefined type 'ns::A'
。这是VS中的错误还是我做错了什么?
更新:这似乎是 Visual Studio 特有的错误。这是 Microsoft Connect 上建议的解决方法:
class B
{
public:
typedef ::A A1;
B(int val = A1::VALUE)
{}
};