C++ で super キーワードをエミュレートする方法

C De Super Kiwadowoemyuretosuru Fang Fa



一部のオブジェクトベースのプログラミング言語には「super」キーワードがあり、サブクラスが基本クラスまたは親クラスの関数やメンバーを呼び出すことができます。一部のプログラミング言語では、「super」キーワードを具体的にどのように使用するかを決定します。ただし、C++ の場合、super キーワードは Java や Python とは異なります。このチュートリアルでは、C++ でのスーパー キーワードのエミュレーションを学習し、デモンストレーションします。

C++ で super キーワードをエミュレートする方法

「super」として知られるキーワードは、C++ コンパイラでは事前定義されていません。継承と関数オーバーライドは、スーパークラスのメンバーとメソッドを受け取るサブクラスを開発するために使用されます。 「スーパークラス」の識別子と、アクセスしたいメンバーまたはメソッドを演算子 (::) を使用して指定するだけです。







構文

以下に示す構文を使用すると、サブクラス内で「parent_function()」のような名前を持つ「parent_class」という名前のスーパークラス内のメソッドにアクセスできます。



親クラス::親関数 ( ;



C++ を使用してスーパー キーワード機能をエミュレートし、親クラスのプロパティにアクセスするには、スコープ解決演算子 (::) を使用します。





スコープ解決演算子 (::) を使用すると、クラスが親クラスを継承するたびに、親クラスのメンバーを取得できます。例として次のコードを考えてみましょう。

#include
名前空間 std を使用します。

クラスベース_Class {
公共:
void ベース関数 ( {
コート << 「これは基本クラスからのbaseFunctionの出力です」 << 終わり;
}
} ;
クラス派生クラス: パブリック基本クラス {
公共:
void dFunction ( {
base_Class::baseFunction ( ;
コート << 'これは基本クラスからbaseFunctionにアクセスする派生クラスです' << 終わり;
}
} ;
整数メイン ( {
派生クラス d;
d.d関数 ( ;
戻る 0 ;
}


上記のプログラムには、基本クラスまたは親クラスのbaseFunction() からの関数が含まれています。 dFunction() 内のbaseFunction() にアクセスする別の派生クラスが定義されています。主なメソッドは、まず、derived_class のインスタンスを作成し、baseFunction() と dFunction() の両方の出力を出力する dFunction() を呼び出します。



結論

「super」キーワードは C++ には直接存在しませんが、継承と関数オーバーライドを組み合わせることでその動作を模倣できます。サブクラスの実装に進む前に、最初にスーパークラスの関数を呼び出すことで、スーパークラスのメソッドまたはメンバーを正常に呼び出して使用できます。この投稿では、理解を深めるために C++ コードのインスタンスも提供しました。