Dziedziczenie struktury
Ostatnio zmodyfikowano 2017-01-18 21:28
Lich555 Temat założony przez niniejszego użytkownika |
Dziedziczenie struktury » 2017-01-18 20:52:08 Witam. Z tego co wiem, to przy dziedziczeniu struktury domyślnie jej składniki są public. struct samochod { int zbiornik; };
class VW : public samochod { };
void stacja_benzynowa( samochod & klient ) { klient.zbiornik = 50; }
int main() { samochod prawdziwy_samochod; stacja_benzynowa( prawdziwy_samochod ); cout << prawdziwy_samochod.zbiornik << endl; VW golf; stacja_benzynowa( golf ); cout << golf.zbiornik << endl; return 0; } Czemu tak się dzieje? To nie jest tak, że tutaj wszystkie skladniki sa public? |
|
Lora |
» 2017-01-18 20:54:44 Napisz jaki błąd. |
|
michal11 |
» 2017-01-18 21:12:01 Domyślnie dziedziczenie jest private, czyli to jest równoznaczne z tym: class VW : private samochod { };
a dziedziczenie prywatne działa tak, że base klasę traktuje jako składnik prywatny, czyli w twoim przykładzie klasa VW w ogólnie nie jest traktowana jako samochód tylko jakby zwierała w sobie samochód, dlatego na przykład nie można jej przypisać do referencji na samochod ponieważ nie dziedziczy po niej publicznie. |
|
Lich555 Temat założony przez niniejszego użytkownika |
» 2017-01-18 21:13:27 stacja_benzynowa( golf ); - 'samochod' is an inaccessible base of 'VW' struct samochod { int zbiornik; }; - 'int samochod::zbiornik' is an inaccessible cout << golf.zbiornik << endl; - within this context |
|
Lich555 Temat założony przez niniejszego użytkownika |
» 2017-01-18 21:14:59 @michal11 Nawet gdy dziedziczymy strukturę? Wydawało mi się (i trafiłem gdzieś w necie na taką info.), że domyślne dziedziczenie przy strukturze jest public.
@Edit Eh, przepraszam za 2 posty. |
|
michal11 |
» 2017-01-18 21:17:40 Nigdy się z tym nie spotkałem, być może tak jest jeżeli tworzymy nową strukturę a nie klasę. Może pomyliło ci się z tym, że domyślnie wszystkie pola w strukturze są publiczne? |
|
Lich555 Temat założony przez niniejszego użytkownika |
» 2017-01-18 21:19:45 |
|
Monika90 |
» 2017-01-18 21:22:30 Jeżeli definiowana struktura dziedziczy z czegoś (nieważne z klasy czy struktury) to domyślnie jest to dziedziczenie publiczne, jeżeli klasa z czegoś dziedziczy to jest prywatne. |
|
« 1 » 2 |