新・明解 C++で学ぶオブジェクト指向プログラミング 第6章 仮想関数と多相性

新・明解C++で学ぶオブジェクト指向プログラミング

柴田 望洋 SBクリエイティブ 2018年09月18日頃
売り上げランキング :

by ヨメレバ

第6章 仮想関数と多相性

*typeid(型).name() で、その型が得られる。

*派生クラスのメンバ関数は、ベースクラスのメンバ関数を隠す。

*隠蔽されるベースクラスのメンバ関数を、明示的に指定することも可能。

mineya.Member::print();

*ベースクラスへのポインタ/参照が、派生クラス型オブジェクトを指す/参照できる、が、制約はある。

*仮想関数
virtual void print() const;
-> 派生クラスのメンバ関数が使われる。
=コンパイル時ではなく、実行時に動的に決定される。

*多相性=ポリモーフィズム

*仮想関数を1個でも有するクラスは、多相的クラスと呼ばれ、そうでないクラスとは異なる性格をもつ。

*OOPの三大要素
・クラス
・継承
・多相性

*ベースクラスのデストラクタは、仮想デストラクタとして定義しておく。

*typeid 演算子は、多相的クラスで本領発揮する。

const Member* ptr, const Member& ref
typeid(*ptr).name()
typeid(ref).name()

 

タイトルとURLをコピーしました