- ベストアンサー
書式で分からないところがあるのですが・・・
C++のサンプルソースで struct A{ int i; }; struct B : public A { int j; }; 見たいなところがあるのですが、 struct B : public A ってどういうことなのでしょうか・・・ 教えていただけたら助かりますm(_ _)m
- みんなの回答 (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を使います。
その他の回答 (1)
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
クラスの継承と同じと考えたらいいです。 struct は、いわゆるクラスの特殊なタイプみたいなものです。 例えば、 struct B x; x.i=10; x.j=11; のように使えます。
補足
早速の回答ありがとうございます^^ struct B x; が x.i=10; x.j=11; のように使えるのは分かるんです。 ですが、struct B : public A の書式の意味が分からないんです^^; つまりこれは、Bの構造体にAのメソッドや変数を含み、それぞれすべてpublicとして公開すると言う意味なのでしょうか・・・ 質問があいまいですみません。よろしくお願いしますm(_ _)m
お礼
わかりました^^ありがとうございます。 structはclassと同じだと言うのははじめて知りました。 と言うことはstructないで関数の定義もできると言うことなんですね! いろいろ教えていただきありがとうございました。