Wątek zablokowany 2016-10-08 00:27 przez furious programming.

c++ builder, pytanko

0

Takie mam pytanko:
jak mozna odniesc sie do metody ktora jest oznaczona jako protected?

Bylabym bardzo wdzieczna za odpowiedz
pozdro
Agnieszka

0

w klasie podstawowej jest publiczna, w pochodnej prywatna

0

w klasie podstawowej jest publiczna, w pochodnej prywatna

8-0
Hm z tego co mi wiadomo pola i metody zadeklarowane jako protected sa zarowno w klasie bazowej jak i pochodnej widoczne jako private.

0

Przypuśćmy że mamy klasę:

class BAZA {
protected:
  int skladnik;
public:
  void Metoda1();
};

oraz pochodną od niej:

class POCHODNA : public BAZA {
public:
  void Metoda2();
};

Składnik protected w pierwszej z klas jest niewidoczny "z zewnątrz", tak jakby był private. Metoda1() ma jednak dostęp do tego składnika, jako że należy do tej samej klasy i działa wewnątrz niej.
Klasa POCHODNA dziedziczy ten chroniony składnik. Metoda2() także może się do niego odwoływać, bo ze względu na słówko protected i więzy krwi ma do tego prawo ;).
Gdyby zamienić słówko protected na private</code>, składnik stanie się prywatną sprawą klasy <code>BAZA, i będzie wtedy już tylko na JEJ użytek. Nawet klasy pochodne od niej nie będą miały do tego składnika bezpośredniego dostępu. Mimo że go dziedziczą, będzie on dla nich ukryty. Jedyny dostęp prowadzi przez klasę bazową, czyli tak:

BAZA::skladnik = 10;

private = moje moje tylko moje :P
protected = moje oraz dla rodzinki ;)
public = bierzcie i jedzcie z tego wszyscy :d

1 użytkowników online, w tym zalogowanych: 0, gości: 1