目的:「クラス階層を実現する、」「機能クラス階層」と分類
機能クラスレベル:機能クラスを追加するための継承によって(正常な機能を追加します)
クラスのレベルを達成するには、次の継承クラスを介して仮想関数を実装
おくる:と方法同じアダプタモードをブリッジ
例:
クラスDisplayImpl { パブリック: 仮想ボイドオープン()= 0; 仮想ボイドプリント()= 0; 仮想ボイド近い()= 0; }。 クラスStringDisplayImpl:公共DisplayImpl //实现性扩展 { パブリック: 無効オープン() { coutの<< "オープン()" <<てendl; } ボイドプリント() { COUT << "印刷()" << ENDL。 } ボイド近い() { COUT << "クローズ()" << ENDL。 } }。
表示クラス { DisplayImpl * PIMPL、コアコード//架橋 公開: ディスプレイ(DisplayImpl PIMPL *) { this-> = PIMPL PIMPL; } ボイドプリント() { pImpl->オープン(); pImpl->印刷(); PIMPL - >クローズ(); } }; クラスマルチディスプレイ://パブリックディスプレイ機能拡張 { パブリック: マルチディスプレイ(DisplayImpl PIMPL *):ディスプレイ(PIMPL) {} ボイドMultiprint() { ため(I = 0 int型、Iは<5。 ; I ++) { プリント(); } } }。
メインINT() { ディスプレイ*のD =新しいディスプレイ(新しいStringDisplayImpl())。 D->印刷(); coutの<<てendl; マルチディスプレイ* MD =新しいマルチディスプレイ(新StringDisplayImpl()); MD-> multiPrint(); 0を返します。 }