Dziedziczenie w klasach pochodnych

Dziedziczenie w klasach pochodnych
M1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 25
0

Witam, czemu tutaj wyskakuje błąd przy wyświetleniu skoro dziedziczone jest z klasy nadrzędnej z sekcji protected

Kopiuj
  class plik
{
  public:

  protected:
  static const int w=5;

};

class bitmapa: public plik
{

};



int main()
{

bitmapa dwa;
cout<<dwa.w<<endl;

unikalna_nazwa
  • Rejestracja: dni
  • Ostatnio: dni
3

bo jest dalej w protected? :|

M1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 25
1

wg. tego "Sekcja protected klasy jest ściśle związana z dziedziczeniem - elementy i metody klasy, które się w niej znajdują, mogą być swobodnie używane w klasie dziedzicznej ale poza klasą dziedziczną i klasą bazową nie są widoczne." powinno być dostępne

AF
  • Rejestracja: dni
  • Ostatnio: dni
1

No nie powinno być. Metoda main nie należy ani do klasy bazowej, ani do żadnej pochodnej.

KR
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 353
4
michcio19923 napisał(a):

elementy i metody klasy, które się w niej znajdują, mogą być swobodnie używane w klasie dziedziczacej
Przeczytaj to i pomysl bo jest to prawda. Moga byc uzywane w klasie.

byku_guzio
  • Rejestracja: dni
  • Ostatnio: dni
3

Nie, nie powinno - czytaj ze zrozumieniem.
Te Twoje cout << dwa.w << endl; jest poza klasą bazową i poza pochodną

//lol: 3 posty w przeciągu 1 min. :p

M1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 25
0

okey dzięki a czemu wyświetlenie w klasie jest niemożliwe

Kopiuj
  class bitmapa: public plik
{
cout<<"aa"<<endl;
};
Endrju
  • Rejestracja: dni
  • Ostatnio: dni
1

A to co to ma być? Ten kod musi być w jakieś metodzie.

KR
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 353
1

Moze poczytaj najpierw co to tak naprawde jest klasa i jak sie z nia obchodzic. Pare przykladow tez nie zaszkodzi, potem sie bierz za pisanie.

M1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 25
0

chciałem po prostu w klasie wyświetlić z nadrzędnej jedną stałą

Kopiuj
 
class plik
{
  public:

  protected:
  static const int w=5;

};

class bitmapa: public plik
{
 cout<<w<<endl;
};


Shalom
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Space: the final frontier
  • Postów: 26433
0

Ale co to znaczy "wyświetlić w klasie"? o_O Klasa to jest pewna kategoria bytów/obiektów. Klasa jako taka jest PASYWNA. Możesz mieć w klasię metodę która coś robi, ale klasa sama w sobie nic nie robi.

allocer
  • Rejestracja: dni
  • Ostatnio: dni
1

A o metodach Ty słyszałeś? Jak niby ma działać ten Twój kod? Kompilator to nie jest kobieta, która wszystkiego się domyśli.

Kopiuj
class klasa
{
   public:
       void wyswietl(); 
};

void klasa::wyswietl(){
     cout<<"napis"<<endl;
}
M1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 25
0

Okey do metod nie doszedłem jeszcze, dziękuję za pomoc

Sarrus
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2512
5
michcio19923 napisał(a):

Okey do metod nie doszedłem jeszcze, dziękuję za pomoc

Uczysz się zbyt chaotycznie. Zostaw klasy i obiekty, bo jeszcze strukturalnego programowania nie masz opanowanego.

unikalna_nazwa
  • Rejestracja: dni
  • Ostatnio: dni
7

lol
zajebiste podejście - "nie wiem co to metoda więc pouczę się dziedziczenia" :D

M1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 25
0

Nim zaczniesz kogoś oceniać spójrz na siebie i żeby wówczas ta ocena nie była gorsza w porównaniu do innych. Zajmij się sobą, swoimi sprawami, problemami.

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.