有没有之间的差异:使用public关键字与结构
struct B {...};
struct D : B {...};
和:
struct B {...};
struct D : public B {...};
如果没有,为什么每个人,包括标准,用更详细的,第二个变种?
有没有之间的差异:使用public关键字与结构
struct B {...};
struct D : B {...};
和:
struct B {...};
struct D : public B {...};
如果没有,为什么每个人,包括标准,用更详细的,第二个变种?
不,这两个完全一样。我不确定每个人都使用第二个变体。比如,我不这样做。标准在各处都没有使用。例如,在C++ 11第3.8节中,我们看到:
struct D1 : B { void f(); };
在另一方面,是明确的手段,人谁不知道规则可以理解的代码。
不,因为对于结构体,默认访问说明符和默认的继承类型都是public
。说到这一点,类的默认访问说明符是private
,这是C++中struct
和class
在声明类型的上下文中的唯一区别。
至于“为什么” - 可能是因为这是一个有点更加明确,一个并不需要记住在这个问题class
和struct
之间的差异。
“,这是struct/class声明中上下文中struct和class的唯一区别”。有一个不相关的区别,就是'class'具有与模板相关的另一个含义,'struct'不具有其他含义。 – hvd 2012-08-12 11:44:58
@ hvd很好的一点。 – juanchopanza 2012-08-12 11:45:50
人们正在使用第二种方式,所以他们在结构中的类中使用相同的方式。 – elyashiv 2012-08-12 11:43:02
[C++中的struct和class有什么区别]可能的重复(http://stackoverflow.com/questions/92859/what-are-the-differences-between-struct-and-class-in-c) – juanchopanza 2012-08-12 11:47:28
实际上,该标准有第一个变体的例子,请参阅我的答案。 – juanchopanza 2012-08-12 12:05:46