C++ のインターフェイスは、抽象クラスを使用して適用されます。一方、クラス内の少なくとも 1 つの関数が純粋仮想関数として宣言されている場合、そのクラスは抽象クラスと呼ばれます。
純粋仮想機能とは
の 純粋仮想機能 つまり、ユーザーは関数の定義ではなく関数を宣言するだけです。メソッド/関数のオーバーライドは、派生クラスで純粋仮想メソッドを実装するために使用されます。以下に示すようにクラス内で記述されている場合、関数は純粋仮想と見なされます。
これが a の構文です。 純粋仮想機能 クラス ルームの。
クラス 部屋 {
公共 :
// 純粋仮想関数
バーチャル ダブル ゲタリア ( ) = 0 ;
プライベート :
ダブル 長さ ; // 部屋の長さ
ダブル 幅 ; // 部屋の幅
} ;
抽象クラスとは
基本クラスとして機能する目的で特別に作成されたクラスは、 抽象クラス .抽象クラスには、少なくとも 1 つの純粋仮想関数が存在する必要があります。変数と標準関数が含まれる場合があります。抽象クラスが持つ派生クラスは、基本クラスの純粋仮想関数を実装する必要があります。そうしないと、抽象クラスになります。
次の例を考えてみましょう。この例では、親クラスが基本クラスにインターフェイスを提供し、基本クラスが純粋仮想関数を適用するために呼び出されます。 getArea() . 2 つの異なるクラスが同じものを使用する getArea() 機能しますが、両方の場合の出力は異なります。
#include
使用して 名前空間 標準 ;
クラス 形
{
公共 :
バーチャル 整数 ゲタリア ( ) = 0 ;
空所 設定幅 ( 整数 と )
{
幅 = と ;
}
空所 長さを設定 ( 整数 l番目 )
{
長さ = l番目 ;
}
保護された :
整数 幅 ;
整数 長さ ;
} ;
クラス 矩形 : 公共 形
{
公共 : 整数 ゲタリア ( )
{
戻る ( 幅 * 長さ ) ;
}
} ;
クラス 三角形 : 公共 形
{
公共 : 整数 ゲタリア ( )
{
戻る ( 幅 * 長さ ) / 2 ;
}
} ;
整数 主要 ( 空所 )
{
長方形R ;
トライアングルT ;
R. 設定幅 ( 9 ) ;
R. 長さを設定 ( 5 ) ;
カウト << '長方形の面積: ' << R. ゲタリア ( ) << エンドル ;
T. 設定幅 ( 9 ) ;
T. 長さを設定 ( 5 ) ;
カウト << '三角形の面積: ' << T. ゲタリア ( ) << エンドル ;
戻る 0 ;
}
出力
インターフェイスの重要性
純粋な抽象クラス (インターフェース) から派生したクラスは、基本クラス、つまりインターフェースの各メソッドを常に実装する必要があります。クラスだけでなく関数にもインターフェイス ポインターを渡すことができ、そこから派生クラスの関数を呼び出すことができます。
インターフェイスを使用するためのルールは何ですか
C++ でインターフェイスを使用する場合、ユーザーが従うべき次の規則があります。
- 純粋仮想関数のみを宣言します。
- 純粋仮想関数に 0 のみを割り当てます。
- クラスのインターフェースを作成しないでください。
- 基本抽象クラスへの参照を使用して、派生クラスのインスタンスへのポインターを作成できます。
次のコードでは、インターフェイス Linuxヒント 、純粋仮想メソッドを使用して抽象クラスが作成され、その関数が子クラスに適用されたように、 returnString() インターフェイス規則に従って、main 関数内のメソッド。
#include#include
#include <文字列>
使用して 名前空間 標準 ;
クラス Linuxヒント
{
公共 :
バーチャル 文字列 returnString ( ) = 0 ;
} ;
クラス 子供 : 公共 Linuxヒント
{
公共 :
文字列 returnString ( )
{
戻る 「こんにちは Linuxhint」 ;
}
} ;
整数 主要 ( )
{
子 child_object ;
Linuxヒント * ptr ;
ptr = & child_object ;
カウト < returnString ( ) ;
戻る 0 ;
}
出力
結論
インターフェイスは、必要なクラスを C++ で実装するために必要なクラスの動作を記述する抽象クラスです。上記のガイドラインは、インターフェースを使用して C++ プログラミングのスキルを向上させる初心者にとって重要です。 C++ でのインターフェイスの実装を学習するのに役立つ例もいくつかあります。