Latest web development tutorials

C ++ Klasse Zugriffsmodifikator

C ++ Klasse & Objekte C ++ Klasse & Objekte

Versteckte Daten objektorientierte Programmierung ist ein wichtiges Merkmal, das an die interne Elementfunktion einer Klasse Typ direkten Zugriff verhindert. Der Zugriff wird durch die Klassenmitglieder beschränkt innerhalb des Hauptkörpers der jeweiligen Regionöffentlich markiert, privat, geschützt zu spezifizieren.Keywords öffentlich, privat, geschützt genannt Zugriffsbezeichner.

Eine Klasse kann mehr als einen öffentlichen haben, geschützt oder privat Branded Zone. Vor jeder markierte Zonenbereich beginnen nächste markiert oder das Ende der Klasse Körper, bevor Sie die rechte Klammer treffen gültig sind. Die Standard-Zugriffs Modifikatoren und Klassenmitglieder sind privat.

class Base {
 
   public:
 
  // public members go here
 
   protected:
 
  // protected members go here
 
   private:
 
  // private members go here
 
};

Public (öffentlich) Mitglied

Öffentliche Mitglied im Programm außerhalb der Klasse zugänglich sind.Sie können keine Member-Funktionen verwenden zu setzen und den Wert der öffentlichen Variablen zu erhalten, wie folgt:

#include <iostream>
 
using namespace std;
 
class Line
{
   public:
      double length;
      void setLength( double len );
      double getLength( void );
};
 
// 成员函数定义
double Line::getLength(void)
{
    return length ;
}
 
void Line::setLength( double len )
{
    length = len;
}
 
// 程序的主函数
int main( )
{
   Line line;
 
   // 设置长度
   line.setLength(6.0); 
   cout << "Length of line : " << line.getLength() <<endl;
 
   // 不使用成员函数设置长度
   line.length = 10.0; // OK: 因为 length 是公有的
   cout << "Length of line : " << line.length <<endl;
   return 0;
}

Wenn der obige Code kompiliert und ausgeführt wird, erzeugt es die folgenden Ergebnisse:

Length of line : 6
Length of line : 10

Private (privat) Mitglied

Private Membervariablen oder Funktionen außerhalb der Klasse nicht zugänglich ist , gar nicht zu sehen.Nur Klassen und Friend-Funktion können private Mitglieder zugreifen.

Standardmäßig sind alle Mitglieder der Klasse privat. Zum Beispiel in der folgendenKlasse, ist Breite eine private Mitglieder, was bedeutet , dass , wenn Sie keine Zugriffsmodifizierer verwenden, die Mitglieder private Mitglieder zu sein , angenommen werden:

class Box
{
   double width;
   public:
      double length;
      void setWidth( double wid );
      double getWidth( void );
};
 

In der Praxis definieren wir in der Regel die Daten im privaten Bereich, wie in dem entsprechenden Bereich der öffentlichen Funktionen definiert außerhalb der Klasse diese Funktionen auch aufrufen kann wie folgt dar:

#include <iostream>
 
using namespace std;
 
class Box
{
   public:
      double length;
      void setWidth( double wid );
      double getWidth( void );
 
   private:
      double width;
};
 
// 成员函数定义
double Box::getWidth(void)
{
    return width ;
}
 
void Box::setWidth( double wid )
{
    width = wid;
}
 
// 程序的主函数
int main( )
{
   Box box;
 
   // 不使用成员函数设置长度
   box.length = 10.0; // OK: 因为 length 是公有的
   cout << "Length of box : " << box.length <<endl;
 
   // 不使用成员函数设置宽度
   // box.width = 10.0; // Error: 因为 width 是私有的
   box.setWidth(10.0);  // 使用成员函数设置宽度
   cout << "Width of box : " << box.getWidth() <<endl;
 
   return 0;
}

Wenn der obige Code kompiliert und ausgeführt wird, erzeugt es die folgenden Ergebnisse:

Length of box : 10
Width of box : 10

Schutz (geschützt) Mitglieder

Geschützte Member - Variablen oder Funktionen mit einem eigenen Mitgliedern ist sehr ähnlich, aber ein wenig anders, an die Mitglieder der abgeleiteten Klasse zu schützen (dh Unterklassen) sind zugänglich.

Im nächsten Abschnitt werden Sie das Wissen abgeleiteten Klassen und Vererbung lernen. Nun können Sie die folgenden Beispiele zu sehen, leiten wir aus der übergeordneten KlasseBox Eine Unterklasse smallBox.

Das folgende Beispiel ist ähnlich wie bei den vorhergehenden Beispielen, wobei dieBreite jedes Mitglied eine abgeleitete Klasse Elementfunktion smallBox Zugriff sein kann.

#include <iostream>
using namespace std;
 
class Box
{
   protected:
      double width;
};
 
class SmallBox:Box // SmallBox 是派生类
{
   public:
      void setSmallWidth( double wid );
      double getSmallWidth( void );
};
 
// 子类的成员函数
double SmallBox::getSmallWidth(void)
{
    return width ;
}
 
void SmallBox::setSmallWidth( double wid )
{
    width = wid;
}
 
// 程序的主函数
int main( )
{
   SmallBox box;
 
   // 使用成员函数设置宽度
   box.setSmallWidth(5.0);
   cout << "Width of box : "<< box.getSmallWidth() << endl;
 
   return 0;
}

Wenn der obige Code kompiliert und ausgeführt wird, erzeugt es die folgenden Ergebnisse:

Width of box : 5

C ++ Klasse & Objekte C ++ Klasse & Objekte