c++ builder, pytanko

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

  • Rejestracja: dni
  • Ostatnio: dni
0

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

Bylabym bardzo wdzieczna za odpowiedz
pozdro
Agnieszka

vixen03
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 475
0

w klasie podstawowej jest publiczna, w pochodnej prywatna

OR
  • Rejestracja: dni
  • Ostatnio: dni
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.

gamecreator
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 6
0

Przypuśćmy że mamy klasę:

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

oraz pochodną od niej:

Kopiuj
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:

Kopiuj
BAZA::skladnik = 10;

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

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.