Cpp クラス 継承 アップキャスト 新しいページはコチラ

提供: yonewiki
移動: 案内, 検索
(クラス 継承 アップキャスト)
(クラス 継承 アップキャスト)
30行: 30行:
  
 
 継承において、派生クラスは、基底クラスを引き継いで利用する。アップキャストで基底クラスはいろいろぶら下がった派生クラス(派生クラスからは基底クラスが上でアップキャスト)を選んで、いろいろな機能を利用するという関係です。それは、派生クラスのポインタ変数が、基底クラスのポインタ変数に受け渡すという動作(アップキャスト)によって実現される。自分はいまだに上とか下とかという言い方に違和感を感じていますが、そういう名前が付けられたということは理解したし、納得したという感じです。いわせてみれば、自分が折れてやった。そういう偉そうな立場に立ってみた。そして、見下される。そういうことだ。そう、そういうことなんだ。
 
 継承において、派生クラスは、基底クラスを引き継いで利用する。アップキャストで基底クラスはいろいろぶら下がった派生クラス(派生クラスからは基底クラスが上でアップキャスト)を選んで、いろいろな機能を利用するという関係です。それは、派生クラスのポインタ変数が、基底クラスのポインタ変数に受け渡すという動作(アップキャスト)によって実現される。自分はいまだに上とか下とかという言い方に違和感を感じていますが、そういう名前が付けられたということは理解したし、納得したという感じです。いわせてみれば、自分が折れてやった。そういう偉そうな立場に立ってみた。そして、見下される。そういうことだ。そう、そういうことなんだ。
 +
 +
 +
 ポインタ変数の同士の受け渡しで実現すると表現しましたが、実際には、派生クラス型の変数→基底クラス型の参照変数という受け渡しでもアップキャストが出来ます。これは関数の引数でも受け渡せますし、アドレスの代入のような形式でも受け渡せます。記述パターンは何種類かあると考えてよいです。
 +
 +
 +
 では、ちょっとした使い方のサンプルプログラムを作ってみます。継承のサンプル同様に単純機能でアップキャストを利用します。継承のサンプルによく似た考え方でサブスクリプションの仕組みの基本料金x月を計算する基底クラスに、オプション料金1つを足す機能がある派生クラスがこれまでのサンプルで、もう二つくらい派生クラスを作って、オプション料金をいくつか格納した配列を受け取って足し合わせる機能と基本料金が半額に割引きされる派生クラスを作ってみたいと思います。
 +
 +
 +
  
  
 
[[C PlusPlus#C++からの技術|C++]]に戻る
 
[[C PlusPlus#C++からの技術|C++]]に戻る

2020年7月22日 (水) 00:00時点における版



個人用ツール
名前空間

変種
操作
案内
ツールボックス