ページ 11

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

Posted: 2018年9月05日(水) 01:26
by 神田空太
C++でゲーム作成に挑戦しているものです。
レベルとしてはまだまだ初心者のところがたくさんあるので
失礼な質問となってしまったら申し訳ありません。

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

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

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

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



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

Posted: 2018年9月05日(水) 01:35
by 神田空太
追記です。
右側のScreen_ParaとInterfaceのみProtected、
それ以外はすべてPrivateで継承しています。
(重なるところはvirtualを付けています)

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

Posted: 2018年9月05日(水) 02:03
by 神田空太
申し訳ありません、いろいろ試して、確認してみたところ。。。
右側のScreen_Paraにvirtualをつけ忘れていていました。

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

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

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

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

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

Posted: 2018年9月10日(月) 14:11
by 神田空太
まず、返信が遅くなり申し訳ありません。

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

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

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

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