2010-10-19 66 views
4

我有,我有包装的一些遗留代码,我也碰到过这样的声明:C++的默认继承访问说明符?

class Foo : Bar 
{ 
    // ... 
}; 

这似乎下GCC编译。我知道这很糟糕,但我无法改变它。我的问题是,如果没有继承访问说明符存在,C++编译器如何处理它?

+3

其实,我想说,这是*不*坏。我会冗余地指定访问说明符不好。 – 2010-10-19 03:16:50

+0

[Default class inheritance access]的可能重复(http://stackoverflow.com/questions/3811424/default-class-inheritance-access) – 2010-10-19 12:40:11

回答

8

顺便说一句,它不被称为访问修饰符。这就是所谓的访问指示符

$ 11.2/2 - “在没有 访问说明符为基类的,当派生 类与类密钥 struct和私人定义假定 公共是在 类用类关键字 类定义的情况下被假定的。“

在你的背景下,“酒吧”是一个私人的基类的“富”

1

这是private

9

对于课程,默认为private

对于结构体,默认值为public