Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Konstruktor klasy pochodnej wywoluje niejawnie konstruktor klasy nadrzędnej?

Ostatnio zmodyfikowano 2011-03-21 11:04
Autor Wiadomość
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.
P-29515
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.
P-29527
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)
C/C++
virtual ~A() = 0;
cos takiego - zagwaratnuje to na poziomie kompilacji, ze proba utworzenia obiektu klasy A spowoduje blad

No chyba ze juz tak wlasnie zrobiles :)
P-29528
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.
P-29529
« 1 »
  Strona 1 z 1