C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C ++の親クラスから継承されるものは何ですか?


オブジェクト指向プログラミングでは、親クラスの特性を継承することができます。親クラスは基本クラスと呼ばれ、子クラスは派生クラスと呼ばれます。派生クラスは、基本クラスのメンバー関数であるデータメンバーを継承できます。

データメンバーがパブリックの場合、派生クラス、同じクラス、およびクラス外からアクセスできます。データメンバーが保護されている場合、それらは派生した同じクラスからのみアクセスできますが、クラス外ではアクセスできません。データメンバーがプライベートの場合、同じクラスのみがそれらにアクセスできます。

これはC++言語での継承の例です

#include <bits/stdc++.h>
using namespace std;
class Base {
   public: int a;
   protected: int b;
   private: int c;
};
class Derived : public Base {
   public: int x;
};
int main() {
   Derived d;
   d.a = 10;
   d.x = 20;
   cout << "Derived class data member vale : " << d.x << endl;
   cout << "Base class data member value : " << d.a << endl;
   return 0;
}

出力

Derived class data member vale : 20
Base class data member value : 10

上記のプログラムでは、派生クラスは基本クラスとそのデータメンバーを継承しています。派生クラスオブジェクトdが作成され、基本クラスと派生クラスaおよびxのデータメンバーを呼び出すために使用されます。ただし、基本クラスの変数bとcは保護されており、プライベートであるためアクセスできません。アクセスしようとするとエラーが表示されます。

Derived d;
d.a = 10;
d.x = 20;

  1. C++でのソースからターゲットへのすべてのパス

    N個のノードを持つ有向非巡回グラフがあるとします。ノード0からノードN-1までのすべての可能なパスを見つけて、それらを任意の順序で返す必要があります。グラフは次のように与えられます。ノードは0、1、...、graph.length-1です。graph[i]は、エッジ(i、j)が存在するすべてのノードjのリストです。 したがって、入力が[[1,2]、[3]、[3]、[]]の場合、出力は[[0,1,3]、[0,2,3]]になります。 これを解決するには、次の手順に従います- resと呼ばれる1つの2D配列を作成します 解決と呼ばれるメソッドを定義します。これにより、グラフ、ノード、

  2. C++で特定のノードから距離kにあるすべてのノードを出力します

    この問題では、二分木、ターゲットノード、整数Kが与えられます。ターゲットノードから距離Kにあるツリーのすべてのノードを印刷する必要があります。 。 二分木 は、各ノードに最大2つのノード(1つまたは2つ/なし)を持つ特別なツリーです。 問題を理解するために例を見てみましょう K =2 ターゲットノード:9 出力 − 5 1 3. 説明 − 距離は、ノードの上位、下位、または同じレベルで取得できます。したがって、それに応じてノードを返します。 この問題を解決するには、ターゲットノードからK距離離れたノードのタイプを理解する必要があります。 上記の試験から、k個の離