1

違いはありますか:

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

と:

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

いいえの場合、標準を含むすべての人が、より詳細な 2 番目のバリアントを使用するのはなぜですか?

4

2 に答える 2

4

いいえ、構造体では、デフォルトのアクセス指定子と継承のデフォルトのタイプの両方がpublic. そういえば、クラスのデフォルトのアクセス指定子は です。これが、型の宣言に関する C++のとprivateの唯一の違いです。structclass

「なぜ」については、おそらくもう少し明確であり、その点で と の違いを覚える必要がないためclassですstruct

于 2012-08-12T11:41:22.780 に答える
2

いいえ、両者はまったく同じです。また、誰もが 2 番目のバリアントを使用しているとは限りません。たとえば、私はしません。標準でもどこでも使用されているわけではありません。たとえば、C++11 §3.8 では、次のようになります。

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

一方、明示的であるということは、ルールを知らない人でもコードを理解できるということです。

于 2012-08-12T11:40:32.763 に答える