違いはありますか:
struct B {...};
struct D : B {...};
と:
struct B {...};
struct D : public B {...};
いいえの場合、標準を含むすべての人が、より詳細な 2 番目のバリアントを使用するのはなぜですか?
違いはありますか:
struct B {...};
struct D : B {...};
と:
struct B {...};
struct D : public B {...};
いいえの場合、標準を含むすべての人が、より詳細な 2 番目のバリアントを使用するのはなぜですか?
いいえ、構造体では、デフォルトのアクセス指定子と継承のデフォルトのタイプの両方がpublic
. そういえば、クラスのデフォルトのアクセス指定子は です。これが、型の宣言に関する C++のとprivate
の唯一の違いです。struct
class
「なぜ」については、おそらくもう少し明確であり、その点で と の違いを覚える必要がないためclass
ですstruct
。
いいえ、両者はまったく同じです。また、誰もが 2 番目のバリアントを使用しているとは限りません。たとえば、私はしません。標準でもどこでも使用されているわけではありません。たとえば、C++11 §3.8 では、次のようになります。
struct D1 : B { void f(); };
一方、明示的であるということは、ルールを知らない人でもコードを理解できるということです。