Private

id02009

private - słowo kluczowe; oznacza dostępność składowych z danej klasy.

Do składowych private danej klasy dostęp mają tylko metody tej klasy oraz metody klas zaprzyjaźnionych (Friend).
Ten zakres widoczności jest domyślny, więc można go pominąć (*):

Przykład

class klasa1
{
  private:
    int x;

  public:
    friend class klasa2;
} obiekt1;

class klasa2
{
  public:
    void  metoda(klasa1 &p)
    {
       p.x=12;
    }
} obiekt2;

obiekt1.x=12;  // spowoduje błąd kompilacji

obiekt2.metoda(obiekt1); 
/* to wywołanie jest dozwolone, gdyż klasa2 jest zaprzyjażniona z klasa1, więc jej metdy maja dostęp do składowych private. Efektem wywołania tej funkcji bedzie uaktualnienie
atrybutu x obiektu obiekt1 */

(*) - klasę klasa1 mozna równiez zdefiniowć tak (efekt będzie identyczny):

class klasa1
{
  int x;  // pominięto słowo kluczowe private

  public:
    friend class klasa2;
} obiekt1;

Zobacz też:

0 komentarzy