Dziedziczenie, pytanie czysto teoretyczne.

0

Mam pytanie odnośnie dziedziczenia, a mianowicie: czy atrybuty prywatne są dziedziczone?
Bo mi się wydaje, że są, ale po prostu nie ma się do nich dostępu w klasie pochodnej. Dobrze myślę?

3

Tak. Klasa bazowa ma swoje prywatne składniki, które są też częścią klasy pochodnej. Musi je przecież mieć, bo inaczej nie mogła by wykonywać na nich operacji w swoich funkcjach. Klasa pochodna nie ma do nich dostępu.

Można to sprawdzić za pomocą operatora sizeof: http://ideone.com/ZJpLt

0

Mam jeszcze kolejne pytanie, czy składowe chronione można zdefiniować w klasie pochodnej?

Kolejne pytanie, czym dokładnie jest obiekt chwilowy? Jaki jest jego czas życia?

1

Tak. Bo przecież może być bazową dla innej klasy.

0
Shalom napisał(a):

Tak. Bo przecież może być bazową dla innej klasy.

Dziękuje, a co z tym obiektem chwilowym?

1

Obiekt tymczasowy to nienazwany obiekt, który kończy swoje życie z końcem wyrażenia, w którym został stworzony. (Chyba, że zostanie przypisany do stałej referencji, wtedy żyje tak długo jak ona)
Takie obiekty kompilator tworzy sam wtedy, kiedy są mu potrzebne - np. podczas konwersji. Programista też może stworzyć taki obiekt, najczęstszymi przypadkami jest chyba zwracanie z funkcji i przekazywanie parametrów.

Tu masz koślawy przykład: http://ideone.com/0s3IS

0
Endrju napisał(a):

Obiekt tymczasowy to nienazwany obiekt, który kończy swoje życie z końcem wyrażenia, w którym został stworzony. (Chyba, że zostanie przypisany do stałej referencji, wtedy żyje tak długo jak ona)
Takie obiekty kompilator tworzy sam wtedy, kiedy są mu potrzebne - np. podczas konwersji. Programista też może stworzyć taki obiekt, najczęstszymi przypadkami jest chyba zwracanie z funkcji i przekazywanie parametrów.

Tu masz koślawy przykład: http://ideone.com/0s3IS

Teraz rozumiem, dziękuje :D.

Mam jeszcze jedno pytanie, czy metody statyczne są dziedziczone?

0

Ech.

Statyczne metody są normalnie dziedziczone: http://ideone.com/5EesL

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