Konstruktor klasy pochodnej wywoluje niejawnie konstruktor klasy nadrzędnej?
Ostatnio zmodyfikowano 2011-03-21 11:04
akwes Temat założony przez niniejszego użytkownika |
Konstruktor klasy pochodnej wywoluje niejawnie konstruktor klasy nadrzędnej? » 2011-03-21 00:08:15 [NIE WAZNE]
Witam! Piszę sobie taki mały programik i potrzebuje pomocy, mam taki problem:
- Mam klasę A, która ma wartość visible, typu bool. Klasa ta z założenia nie będzie mieć żadnego obiektu. - Klasa B, dziedziczy po klasie A, wszystko jak leci, w tym zmienną visible
Chciałbym aby w klasie B, nie byłbym zmuszany w każdym konstruktorze ustawiać wartości zmiennej visible. Da się jej dać wartość domyślną? Czy trzeba próbować z bezparametrowym konstruktorem klasy A, który by te wszystkie zmienne domyślne ustawiał, i do każdego konstruktora klasy B, na początku wpisać konstruktor klasy A? [/NIE WAZNE]
Dobra, zrobiłem to z konstruktorem i działa. Ale mam drugie pytanie, bo według efektów działania programu, teza zawarta w temacie się sprawdza. |
|
DejaVu |
» 2011-03-21 00:35:21 Tak. Klasa pochodna wywołuje konstruktory domyślne wszystkich klas bazowych - chyba, że jawnie wywołasz inny konstruktor z klasy bazowej na liście inicjalizacyjnej w klasie pochodnej.
Konstruktor domyślny = konstruktor nie wymagający podawania argumentów. |
|
dmx81 |
» 2011-03-21 07:26:47 klasa A z zalozenia nie bedzie tworzyc obiektow - tak sobie tylko zakladasz ze nie bedziesz tworzyl obiektow, czy rowniez zabezpieczyles to kodem? jesli nie, to uczyn jakakolwiek metode klasy A czysto wirtualna (np destruktor - co zagwarantuje przy dziedziczeniu na wywolanie kolejnych destruktorow) cos takiego - zagwaratnuje to na poziomie kompilacji, ze proba utworzenia obiektu klasy A spowoduje blad No chyba ze juz tak wlasnie zrobiles :) |
|
akwes Temat założony przez niniejszego użytkownika |
» 2011-03-21 11:04:28 Zakładam sobie tylko.
Głównie chodziło o to żeby ta klasa to był jeden wielki zbiornik danych które będzie miał prawie każdy obiekt. Czyli np. X i Y, wysokość i szerokość. Dzięki temu w funkcji od kolizji będę mógł przyjmować obiekty tej głównej klasy, a tak naprawdę to mogą być jakieś KKolo i KKwadrat, które dziedziczą po tej głównej klasie, tylko że zamiast kilku funkcji do kolizji będę miał jedną.
Dziękuje za wyjaśnienie. |
|
« 1 » |