- ベストアンサー
構造体からクラスを派生させる方法
実は今大学に通っていてC++の授業を取っているのですが、この間構造体からクラスを派生させると言う部分の講義があったんです。ですがその回、都合で欠席してしまい方法が分かりません。周りの学生に聞いてもよく分からず本等で調べても構造体から派生させる所は載っていませんでした。どなたか「構造体からクラスを派生させる方法」を知っていたら教えて下さい(私の予想では基本クラス名を書く所を構造体名にすればいいのだと思うのですが)普通にクラスから派生させる時との違いや注意点等も分かりましたらお願いします。 まだ習い始めたばかりなので幼稚な質問になってしまったかもしれませんがよろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
struct STRUCT { int aaa; int bbb; }; のように記述した場合、aaaおよびbbbはパブリックメンバー(外から自由にアクセス可能)です。 class CLASS { int ccc; int ddd; }; 同じように書いてもクラスの場合はプライベートメンバー(メンバー関数からしかアクセスできない) 派生を行う場合も似たような規則があります 上記STRUCTから派生した場合 struct STRUCT2:STRUCT { int eee; int fff; }; というように構造体を宣言した場合、aaaおよびbbbはパブリックなアクセス権を持ちます class CLASS2:STRUCT { int eee; int fff; }; というようにクラスを宣言した場合、aaaおよびbbbはプライベートなアクセス権を持ちます ただし struct STRUCT2:CLASS { int eee; int fff; }; のように記述してもcccとdddがパブリックにアクセスできるようになるわけではありません ちょっとややこしいけど こんなところです
その他の回答 (2)
- MetalKing
- ベストアンサー率57% (15/26)
すいません 思いっきり混乱させるような誤変換... 規定値じゃなく既定値、デフォルトが違うだけってことです
お礼
分かりました。ありがとうございます^^
- MetalKing
- ベストアンサー率57% (15/26)
> 私の予想では基本クラス名を書く所を構造体名にすればいいのだと思うのですが ピンポン!! C++における構造体と暮らすの違いは、メンバーのアクセス権と派生時のアクセス権の規定値が異なることだけです
お礼
早速の回答ありがとうございます。とても参考になります。出来ればメンバのアクセス権と派生時のアクセス権の既定値の所をもう少し詳しく知りたいのですが、具体的にどの様に違うのかを。
お礼
なるほど。分かりました。お手間を取らせてしまい申し訳ありませんでした。 つまり構造体を親にする時には構造体名の前にパブリックをつけなくても構造体のメンバにパブリックにアクセス出来ると言う事ですね^^