Język C++
protected
[słowo kluczowe] Modyfikator dostępu stosowany przy dziedziczeniu.Opis szczegółowy
Modyfikator dostępu, określający poziom dostępu do poszczególnych składowych klasy. Niniejszy modyfikator dostępu stosuje się przy dziedziczeniu i ma on następujące własności:
1) Słowo kluczowe protected nie zezwala na dostęp do stałych, zmiennych, metod itp. spoza klasy (tak jak w przypadku modyfikatora dostępu
private).
2) Składowe klasy oznaczone jako protected są widoczne w obrębie klasy pochodnej.
3) Składowe klasy bazowej oznaczone jako protected mają dostęp chroniony bądź prywatny w klasie pochodnej w zależności od użytego prawa dostępu przy dziedziczeniu. Jeśli klasa została odziedziczona z modyfikatorem
public lub protected, poziom dostępu do składowych oznaczonych jako protected zostanie zachowany.
Dodatkowe informacje
Słowo kluczowe protected w polskiej terminologii jest tłumaczone jako modyfikator o dostępie chronionym.
Przykład
Poprawne użycie:
#include <iostream>
class cKoszyk
{
protected:
int iloscProduktow;
double cena;
public:
cKoszyk::cKoszyk();
};
cKoszyk::cKoszyk()
: iloscProduktow( 0 )
, cena( 0 )
{
};
class cCzynnosci
: public cKoszyk
{
public:
void dodaj_produkt( const char * nowy, double cena_produktu )
{
iloscProduktow++;
cena += cena_produktu;
}
int policz_produkty()
{
return iloscProduktow;
}
double oblicz_cene()
{
return cena;
}
};
int main()
{
cCzynnosci zakupy;
zakupy.dodaj_produkt( "Mleko", 2.20 );
zakupy.dodaj_produkt( "Płatki", 7.56 );
zakupy.dodaj_produkt( "Masło", 1.99 );
std::cout << "W koszyku znajduje sie: " << zakupy.policz_produkty() << " produktow" << std::endl;
std::cout << "Cena wszystkich produktow to: " << zakupy.oblicz_cene();
return 0;
}
Błędne użycie:
#include <iostream>
class cKoszyk
{
protected:
int iloscProduktow;
double cena;
public:
cKoszyk::cKoszyk();
};
cKoszyk::cKoszyk()
: iloscProduktow( 0 )
, cena( 0 )
{
};
class cCzynnosci
: public cKoszyk
{
public:
void dodaj_produkt( const char * nowy, double cena_produktu )
{
iloscProduktow++;
cena += cena_produktu;
}
int policz_produkty()
{
return iloscProduktow;
}
double oblicz_cene()
{
return cena;
}
};
int main()
{
cCzynnosci zakupy;
zakupy.dodaj_produkt( "Mleko", 2.20 );
zakupy.dodaj_produkt( "Płatki", 7.56 );
zakupy.dodaj_produkt( "Masło", 1.99 );
std::cout << "W koszyku znajduje sie: " << zakupy.iloscProduktow << " produktow" << std::endl;
std::cout << "Cena wszystkich produktow to: " << zakupy.cena;
return 0;
}
Błąd:
`int cKoszyk::iloscProduktow' is protected, `double cKoszyk::cena' is protected
Zagadnienia powiązane
public | Publiczny modyfikator dostępu. (słowo kluczowe) |
---|
private | Prywatny modyfikator dostępu. (słowo kluczowe) |
---|
Linki zewnętrzne
Wszystkie teksty są chronione prawami autorskimi. Kopiowanie lub rozpowszechnianie treści poza niniejszym serwisem
jest zabronione.
Powyższe ograniczenie nie dotyczy autora opracowania, któremu przysługuje prawo do rozpowszechniania własnego tekstu wedle własnego uznania.