C++ 継承関係 循環関係になっているかどうかの質問

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
神田空太
記事: 9
登録日時: 4ヶ月前
連絡を取る:

C++ 継承関係 循環関係になっているかどうかの質問

#1

投稿記事 by 神田空太 » 2ヶ月前

C++でゲーム作成に挑戦しているものです。
レベルとしてはまだまだ初心者のところがたくさんあるので
失礼な質問となってしまったら申し訳ありません。

最近クラス継承を使い初めまして、

継承関係が循環してしまっているのか?と思ったことがありまして、
以下の継承関係(特に☆のところ)が循環関係になってしまっているか、
そうでないかをご教授頂きたいです。

とても初歩的な質問となってしまい、申し訳ありませんが、どうかよろしくお願いします。

Back_Para      ☆Screen_Para                                      Interface
    ↑              ↑                                                 ↑
    L----------------」                                                 |
            ↑                                                          |
      Back_Draw          Back_Para                                ☆Screen_Para
            ↑                ↑                                       ↑
             L----------------」                                        |
                     ↑                                                 |
                    Back                                           Screen_Draw
                     ↑                                                ↑
                      L-------------------------------------------------」
                                                  ↑
                                               Stage



神田空太
記事: 9
登録日時: 4ヶ月前
連絡を取る:

Re: C++ 継承関係 循環関係になっているかどうかの質問

#2

投稿記事 by 神田空太 » 2ヶ月前

追記です。
右側のScreen_ParaとInterfaceのみProtected、
それ以外はすべてPrivateで継承しています。
(重なるところはvirtualを付けています)

神田空太
記事: 9
登録日時: 4ヶ月前
連絡を取る:

Re: C++ 継承関係 循環関係になっているかどうかの質問

#3

投稿記事 by 神田空太 » 2ヶ月前

申し訳ありません、いろいろ試して、確認してみたところ。。。
右側のScreen_Paraにvirtualをつけ忘れていていました。

つけたらちゃんと動きました。

申し訳ありません。解決しました。
しかしながら、アドバイスがあると本当にありがたいです。

dic
記事: 510
登録日時: 8年前
住所: 宮崎県

Re: C++ 継承関係 循環関係になっているかどうかの質問

#4

投稿記事 by dic » 2ヶ月前

同じクラス名を違う場所で使用しない方がいいでしょう。混乱の元となります。
今回の神田空太さんの設計は簡素ですので、
色んなパターンについて知りたかったら、
C/C++ デザインパターンで検索してみてください。
きっと参考になるパターンがあると思います。
頑張ってね!

神田空太
記事: 9
登録日時: 4ヶ月前
連絡を取る:

Re: C++ 継承関係 循環関係になっているかどうかの質問

#5

投稿記事 by 神田空太 » 2ヶ月前

まず、返信が遅くなり申し訳ありません。

やはり違う場所で継承させる場合は名前を変えて継承させるべきですね。
現に今、結構混乱してきています。

役割にあった形に編集してから継承させる事を意識してみます。

デザインパターンももっと調べてみます!
そして分からなかったらここでまた御世話になります!

経験者からのアドバイスがもらえるここの環境は最高です。

返信

“C言語何でも質問掲示板” へ戻る