1

有没有区别:

struct B {...}; 
struct D : B {...};

和:

struct B {...};  
struct D : public B {...};

如果不是,为什么包括标准在内的每个人都使用更详细的第二变体?

4

2 回答 2

4

不,因为对于结构,默认访问说明符和默认继承类型都是public. 说到这一点,类的默认访问说明符是,这是在声明类型的上下文中和C++private之间的唯一区别。structclass

至于“为什么”——可能是因为它更明确一点,不需要记住和之间的class区别struct

于 2012-08-12T11:41:22.780 回答
2

不,两者完全一样。而且我不确定每个人都使用第二种变体。例如,我不知道。该标准也没有在任何地方使用它。例如,在 C++11 §3.8 中,我们看到:

struct D1 : B { void f(); };

另一方面,明确意味着不知道规则的人可以理解代码。

于 2012-08-12T11:40:32.763 回答