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

C++派生クラスの保護されたメンバーへのアクセス


C ++のクラスには、対応するクラスメンバーを含むパブリック、プライベート、および保護されたセクションがあります。クラス内の保護されたメンバーは、クラスの外部からアクセスできないため、プライベートメンバーに似ています。ただし、派生クラスまたは子クラスからアクセスできますが、プライベートメンバーからはアクセスできません。

C++の派生クラスの保護されたデータメンバーへのアクセスを示すプログラムは次のとおりです-

#include <iostream>
using namespace std;
class Base {
   protected :
   int num = 7;
};
class Derived : public Base {
   public :
   void func() {
      cout << "The value of num is: " << num;
   }
};
int main() {
   Derived obj;
   obj.func();
   return 0;
}

出力

上記のプログラムの出力は次のとおりです。

The value of num is: 7

それでは、上記のプログラムを理解しましょう。

クラスBaseでは、データメンバーは保護されているnumです。 DerivedクラスはBaseクラスを継承します。関数func()は、numの値を出力します。このためのコードスニペットは次のとおりです。

class Base {
   protected :
   int num = 7;
};
class Derived : public Base {
   public :
   void func() {
      cout << "The value of num is: " <<< num;
   }
};

関数main()で、クラスDerivedのオブジェクトobjが作成されます。次に、関数func()が呼び出されます。このためのコードスニペットは次のとおりです。

int main() {
   Derived obj;
   obj.func();
   return 0;
}

  1. C++のローカルクラス

    関数内で宣言されたクラスは、その関数に対してローカルであるため、C++ではローカルクラスと呼ばれます。 ローカルクラスの例を以下に示します。 #include<iostream> using namespace std; void func() {    class LocalClass {    }; } int main() {    return 0; } 上記の例では、func()は関数であり、クラスLocalClassは関数内で定義されています。したがって、ローカルクラスとして知られています。 ローカルクラ

  2. C ++のプライベート、パブリック、および保護された修飾子の違い

    データの非表示は、オブジェクト指向プログラミングの重要な機能の1つであり、プログラムの機能がクラス型の内部表現に直接アクセスするのを防ぐことができます。クラスメンバーへのアクセス制限は、ラベル付けされたアクセス修飾子(クラス本体内のパブリック、プライベート、および保護されたセクション)によって指定されます。 メンバーとクラスのデフォルトのアクセスはプライベートです。 例 class Base { public:    // public members go here protected:    // protected members go here