VS2010中的名称查找错误

时间:2010-12-08 05:11:53

标签: c++ visual-studio-2010 ambiguity

我很确定这是VS 2010中的一个错误,但检查SO总是一个好主意

struct A{
   static int s;
}; 

struct B{ 
   static int s;
}; 

struct C : A, B{ 
   void fn(short s){ // Ambiguous access of 's' here!!!
      s = 2;               
   } 
}; 

int A::s;
int B::s;

int main(){ 
   C c;
}

VS给出 - “错误C2385:'s'的模糊访问。”

g ++和Comeau编译好。

我错过了什么吗?

1 个答案:

答案 0 :(得分:2)

Visual C ++担心钻石问题 - 名为“s”的实例成员由于钻石形状的继承而不明确。但是在这里,它应该被名为“s”的本地参数遮蔽,所以这个代码没有任何违法行为。它应该干净地编译,除非你的环境中有一些奇怪的东西让Visual C ++抱怨阴影变量名。