unsigned char type

0

Witam
Próbuje rozgryźć pewien program i mam z nim pewien problem mianowicie w deklaracji klasy mam

unsigned char type; // 1 car, 2 bike  

Poźniej ta zmienna występuje w konstruktorze i metodzie ją zwracającą

<code class="c">
Vehicle::Vehicle(unsigned char type, int mass) : type(type), mass(mass) {
	nextPtr = NULL;
	prevPtr = NULL;
}


int Vehicle::GetType() {
	return type;
}
 
No i kompletnie nie rozumiem na jakiej zasadzie działa ta zmienna trzymająca typ. Jak to się dzieje kiedy i w jaki sposób tam zapisuje się informacja?
1

Tu : type(type), przepisuje się z parametru do składowej.

0

hmm czyli najzwyczajniej w konstruktorach klas car i bike należy "podać" 1 lub 2 zależnie od typu?
car(int mass) : Vehicle(1, mass)
dobrze myślę?
Dziękuje za pomoc :)

2

Jakiej klasy car albo bike? Nic takiego tutaj nie ma. To zadanie ma jakąś treść albo chociaż cel? (Chcesz opowiedzieć więcej o tym, czy w zasadzie problem jest rozwiązany?)

Ten kod:

car::car(int mass) : Vehicle(1, mass) {}

Będzie konstruktorem jakieś klasy car, dziedziczącej z Vehicle, który wywoła konstruktor klasy bazowej z parametrami 1 ("car") oraz mass.

Nie rozumiem po co jakieś dziwne rozróżnianie typów pochodnych w klasie bazowej. Bo jak zrobię klasę Deathstar : public Vehicle to jaki numerek mam podać? Niewielki ma to sens niestety.

0

Problem jest rozwiązany :)
Są dwie klasy które dziedziczą z Vehicle, rozróżnianie typów ma miejsce metodzie która jest odpowiedzialna za podłączanie obiektów (cały program jest stosem z pewnymi wymaganiami odnośnie połączania) sprawdzających czy obiekty są z jednej klasy etc.
Dziękuje za zainteresowanie tematem :)

0

To jest bezsens. bo możesz stworzyć klasę Vehicle o "typie" car, która nie ma nic wspólnego z klasą Car.
J

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