C ++ VS2013奇怪的错误C2247?

时间:2016-09-13 14:30:44

标签: c++ inheritance

我遇到了一个非常奇怪的错误,我不明白(使用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'的第一个声明。 ?它能想象到什么?

0 个答案:

没有答案