• ベストアンサー

書式で分からないところがあるのですが・・・

C++のサンプルソースで struct A{ int i; }; struct B : public A { int j; }; 見たいなところがあるのですが、 struct B : public A ってどういうことなのでしょうか・・・ 教えていただけたら助かりますm(_ _)m

質問者が選んだベストアンサー

  • ベストアンサー
  • sha-girl
  • ベストアンサー率52% (430/816)
回答No.2

struct B{ int i; int j; }; とすればわかりますか?最終的にはそういうことになります。 C++のstructはclassと同じと思ってください。(defaultがpublicなだけ) (仮想関数を持つことや仮想継承も許されます。) もし「: public ~」の表記が分からないのであれば 先にclassについてもう少し学ぶ必要があります。 publicは公開するという意味ですが ちなみに: public以外にも private・・・継承したものを外部にも内部にも公開しない。 protected・・・継承したものを内部にのみ公開する。 があります。 もし : privateだとすると x.i=10; にアクセスできなくなります。(x.j = 10)は可 他の人(外部)に触られたくないようなときにprivateやprotectedを使います。

genki140
質問者

お礼

わかりました^^ありがとうございます。 structはclassと同じだと言うのははじめて知りました。 と言うことはstructないで関数の定義もできると言うことなんですね! いろいろ教えていただきありがとうございました。

その他の回答 (1)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

クラスの継承と同じと考えたらいいです。 struct は、いわゆるクラスの特殊なタイプみたいなものです。 例えば、 struct B x; x.i=10; x.j=11; のように使えます。

genki140
質問者

補足

早速の回答ありがとうございます^^ struct B x; が x.i=10; x.j=11; のように使えるのは分かるんです。 ですが、struct B : public A の書式の意味が分からないんです^^; つまりこれは、Bの構造体にAのメソッドや変数を含み、それぞれすべてpublicとして公開すると言う意味なのでしょうか・・・ 質問があいまいですみません。よろしくお願いしますm(_ _)m

関連するQ&A