我遇到了一个非常奇怪的错误,我不明白(使用Visual Studio 2013)。使用以下示例:
class a {
public:
a() = default;
};
class b : private a {
public:
b() = default;
};
class c : public b {
public:
c() = default;
a var; // ERROR C2247
};
我收到了以下错误:
error C2247: 'a' not accessible because 'b' uses 'private' to inherit from 'a'
编译它的唯一方法是更改' var'如下:
::a var;
我只是好奇地理解为什么编译器误解了' var'的第一个声明。 ?它能想象到什么?