Aktywne Wpisy
Adek1243 +4
Witam. Mam 30 lat, żonę, dziecko w wieku 3 lat. Mam swoje mieszkanie w Katowicach - 3 pokoje, kredyt już spłacony. Pracuje w ww. miejscowości, zarabiam około 8 k na rękę, żona z 6 tys. Dostałem dzisiaj propozycje pracy w tej samej firmie, ale w oddziale w Warszawie za ok. 3.5 tys więcej, nie ma możliwości pracy zdalnej, myślicie, że warto się przenosić? Tam większe możliwości awansu. Zona mówi, że mógłbym tam

Altru +208
Nóż naostrzony. Jeszcze rok da radę.
źródło: temp_file8317251589463171101
Pobierz




Działam z klasami w C++. Jest klasa ryba i ptak, co dziedziczą po klasie zwierze.
Jest też klasa ptakoryb co dziedziczy po ptaku i rybie ale mam problem z dostaniem się do metody jedz() która jest zdefiniowana w klasie zwierze.
class Zwierze
{
public:
void jedz(){
cout<<"\nzjadam";
}
};
class Ptak : public Zwierze
{
public:
void lec(){
cout<<"\nlatam";
}
};
class Ryba : public Zwierze
{
public:
void plyn(){
cout<<"\nplywam";
}
void Zwierze::jedz();
};
class ptakoryb : public Ryba, public Ptak
{
public:
int zz;
};
int main()
{
ptakoryb pr;
pr.plyn();
pr.lec();
pr.jedz();
return 0;
}
class ptakoryb : public Ryba, public Ptakto robisz stwora który ma i pysk ryby i dziób ptasi (a bardziej technicznie - masz dwie kopie cech zwierzęcych wptakorybie- jedne od ryby a drugie od ptaka). Inaczej je się pyskiem ryby a inaczzej dziobem. Kompilator nie wie którym z nich chcesz coś zjeść. Masz dwa wyjścia:- możesz powiedzieć kompilatorowi (explicit) - zjedz dziobem poprzez
pr.Ptak::jedz()- albo możesz
@BeginEnd: Tak, właśnie to mam na myśli i chcę rozwiązać ten problem.
Myślę, że pr.Ptak::jedz() mnie na tą chwilę satysfakcjonuje ale faktycznie zagłębię się w wirtualne. Dzięki!
@defoxe: Koniecznie - te dwa mechanizmy nie są wymienne. Oba niosą ze sobą odmienne sposoby działania twojego programu.
@BeginEnd: ???
@AnonimoweLwiatko: Jeżeli robisz
class ptakoryb : public Ryba, public Ptakto zrobienie metodyZwierze::jedz()jako wirtualnej nic tu nie da bo skończysz dokładnie w tym samym miejscu czyli kompilator nie będzie wiedział którą metodę wirtualną wybrać. Musiałbyś zrobićclass ptakoryb : public Ryba, public Ptak, public Zwierz. Chyba że o czymś innym