
アップキャストは、なぜ使用するのでしょうか。
<ソース;アップキャストのソース>
//派生クラスのオブジェクトw宣言する。
MyClass3 mc3("パラメータ1","パラメータ2","パラメータ3");
//基本クラスのオブジェクトを宣言する。
MyClass2 mc2;
//派生クラスのオブジェクトを基本クラスに代入する。
mc2 = mc3;
上記ソースの流れをすることのメリットがわからないのです。
派生クラスを、基本クラスに代入することでどのようなメリットが生まれるのでしょうか…。
(ダウンキャストも今いちするメリットが見えないのですが・・・。)
ご教授お願いします。
No.1ベストアンサー
- 回答日時:
class 書けるもの {
public: virtual void 書く() =0;
};
class 黒板 : public 書けるもの {
public: virtual void 書く() { .... }
};
class USBメモリ : public 書けるもの {
public: virtual void 書く() { .... }
};
...
書けるもの* いろいろ[N]; // この中に黒板、USBメモリ... ありとあらゆる書けるもの
for ( int i = 0; i < N; ++i ) {
書けるもの* writable = いろいろ[i];
writeble->書く();
}
なんてな。
書けるものでありさえすれば、それが何かを知らぬまま 書く() ことができます。
>書けるものでありさえすれば、それが何かを知らぬまま 書く() ことができます。
継承して仮想関数で書くまでは、わかったのですが
「いろいろ」の部分で分からなくなってしまいました。
少し考えてみることにします。
ありがとうございました。
No.3
- 回答日時:
> 書かれているソースはアップキャストでなく、コピーコンストラクタのような。
...ホントだ。 てかコピー・オペレータですが(コピー・コンストラクタではなく)。
# コピー・コンストラクタなら MyClass2 mc2 = mc3;
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP クラス 1 2022/08/08 15:12
- その他(プログラミング・Web制作) どういうプログラムで組みますか?google colabでやってるんですけど、出来る方お願いします。 1 2022/07/06 09:28
- Windows 10 IT初心者です! powershellで以下のようなエラーが出ました オブジェクト参照がオブジェクト 1 2023/05/17 11:30
- その他(プログラミング・Web制作) どういうプログラムで組みますか?google colabでやってるんですけど、出来る方お願いします。 1 2022/07/17 18:41
- その他(プログラミング・Web制作) このプログラミングをどう組みますか? Googlecolabでやってるんですが、出来る方お願いします 1 2022/07/13 10:52
- Java 複数TBLのオブジェクトを1つの変数(オブジェクト)でまとめて管理したい 1 2022/12/17 00:12
- C言語・C++・C# C言語について。 5 2023/06/27 18:37
- MySQL 下記の問合せを行うクエリを、PhpMyAdminで作成して実行せよ。 「A,B組の女子の氏名のよみ。 1 2023/05/16 15:28
- 学校 昔、中学生の頃は同じクラスでもたいていおとなしい組とやんちゃ組、優等生組、その他謎の少数派の4タイプ 2 2023/02/09 14:30
- Visual Basic(VBA) エクセルVBA Workbook変数に変数を使ったファイル名を格納したい 5 2023/06/13 14:46
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
一部の文字列を数値に変える方法
-
Javascriptでクラスの順番を入...
-
違うクラスからの変数の共有化
-
アブストラクトとインターフェ...
-
ネストしたenumへのリフレクシ...
-
無名パッケージからのインポート
-
クラス間でのデータ参照
-
「オブジェクト志向」の考えか...
-
デシリアライズでオブジェクト...
-
javaの配列とクラス
-
VB.NETで出来てC#で出来ない???
-
この問題の解説をお願いします。
-
FilterReader クラスのカスタム...
-
C#にて別クラスの関数を使いたい
-
(クラス名.this.メソッド)って...
-
範囲外の数値を代入したらエラ...
-
相互的な検索のできるハッシュ...
-
関数内の変数に<summary>コメン...
-
Genericsの型パラメータ
-
C# log4netの使い方
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
関数内の変数に<summary>コメン...
-
C#でほかのファイルにある自作...
-
C#にて別クラスの関数を使いたい
-
クラス間でのデータ参照
-
import と extends について
-
c++,ある関数のクラスから別の...
-
範囲外の数値を代入したらエラ...
-
C#のクラスライブラリでメッセ...
-
C++でfriendクラスにしているの...
-
ひとつのファイルにクラスは1つ?
-
無名パッケージからのインポート
-
継承したクラス側のクラス名の取得
-
visual studioのデザイナ画面で...
-
a href="..." とServlet
-
Java リフレクションについて
-
構造 他のクラスの構造体を別...
-
ASP Pageの孫継承のPage_Load
-
別ファイルのclassの読み込みに...
-
オーバーロードしたメンバ関数...
-
実行可能jarファイルのファイル...
おすすめ情報