A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
>ソースコードは諸事情により、掲載できないもので…
そのまま書けって言ってるんじゃなくて、
雰囲気を伝えてほしかったのさ。日本語でいくら説明しても難しい。
それから、継承はポリモーフィズムが使いたいときにだけしして、
一部の機能を変更したい、などの場合は委譲を使いましょう。
No.3
- 回答日時:
>当初は関数をクラス化して継承を用いて改修しようと試みましたが、結局同じ関数を何度も記入することになってしまい全く効率が悪く終わりました。
同一の部分を「基本クラス」として作成しましょう。
この時「出力するアドレスが違うだけで、やってる事は同じ」の場合、コンストラクタ関数にアドレスを渡せるように作れば、オブジェクト生成時に「異なるアドレスでコンストラクト」すれば「出力アドレスごとにオブジェクトで管理」できます。
クラスは1つですから、書く関数も1つです。
で、もし「特定のポートだけ出力方法が違い、あとは一緒」と言うのがあれば、上記で作った基本クラスから派生クラスを作って、特殊処理が必要な出力用関数だけを、オーバーライドして関数を上書きしてしまえば良いのです。
また「関数を呼び出して、入出力アドレス、入出力ポートを切り替えれるように、切り替え関数を用意」しておけば、1つのオブジェクトだけをコンストラクトして「使い回し」も出来ます。
同じ関数を何個も書かなければならなくなった理由は「クラスの継承を上手に使えてない」からだと思います。
基本クラスに関数を1つ書いて、それを継承する継承クラスを派生させていけば「同じ関数は書かなくて良い筈」なんですが。
この回答への補足
分かり易いアドバイスをいただきありがとうございました。
実はC++でのコーディングをあまりしたことがないため、完全に知識不足でした。
この改修もかねて明日からの休日にC++の勉強をしてみたいと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 数学 数学三 複素数平面 添付してある画像の問題において、「点Cは半直線AB上にある」という記述があります 1 2023/06/17 11:28
- 数学 『Cの微分.2』 3 2023/02/15 19:47
- C言語・C++・C# 至急教えてください! プログラミングの問題です! お願いします! 出力2と全く同じ出力をするように、 2 2022/06/22 23:10
- Excel(エクセル) ExcelVBAでリストの項目に必要数と同じ手配数を分配していくマクロを作りたいです。 1 2022/07/29 18:36
- その他(プログラミング・Web制作) プログラミングについて(Python) 添付した画像はC言語で簡単に作ったソースで、1つの配列に5つ 3 2022/09/10 19:15
- Windows 7 ショートカットキー 応用編 どういうの主に使いますか? 2 2022/12/28 23:46
- 数学 球面と接する直線の軌跡が表す領域 4 2023/07/30 12:37
- Excel(エクセル) エクセルからスプレッドシートに数式を移植で起こるエラーについて。 2 2023/08/05 10:56
- 数学 1より大きい実数からなる数列{a[n]}がlim[n→∞]a[n]=1をみたしています。 xy平面上 2 2023/06/10 11:47
- Excel(エクセル) EXCEL 行内のデータを2行に分けて、表を作り直したいのです。教えてください。 5 2023/06/25 14:00
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
FriendとPublicの違い。。。
-
エディットコントロールのイベ...
-
C++でJavaのStaticイニシャライ...
-
protected override について
-
継承を重ねた場合のコストはど...
-
MessageBoxを継承したい
-
MFCのドラッグ&ドロップについて
-
フォーム間でのオブジェクト又...
-
C++ protectedにアクセス不可
-
OnPaintとOnDraw関数の違いにつ...
-
個々の関数について継承してい...
-
クラスのアドレスを引数として...
-
継承したクラスを、継承元のク...
-
変数の後の点々
-
C++で継承元のクラスの代入演算...
-
MFCアプリのコマンドラインでパ...
-
イベントにAddHandlerされてい...
-
OnInitDialog()の関数の組み込み方
-
派生クラスから基本クラスprote...
-
DataGridViewのセルに斜線を引...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
FriendとPublicの違い。。。
-
既定のコンストラクタがない?
-
(UWSC) 「#32770」の意味わかり...
-
クラスのアドレスを引数として...
-
ダイアログ表示時にチェックボ...
-
イベントにAddHandlerされてい...
-
【ASP.NET】 独自で作成したク...
-
MFCアプリのコマンドラインでパ...
-
DebugクラスとTraceクラスの違い
-
ボタンのオーナードローについて
-
OnInitDialog()の関数の組み込み方
-
IncludeではなくClassで宣言す...
-
関数の呼び出し元の検索
-
このコンパイルエラーの意味に...
-
C++ protectedにアクセス不可
-
C++で継承元のクラスの代入演算...
-
DataGridViewのセルに斜線を引...
-
C#で通常のbuttonコントロール...
-
エディットコントロールのイベ...
-
CMainFrameクラスの使い方
おすすめ情報