Witam,
Podczas kompilacji poniższego kodu pojawia mi się błąd:
[Linker error] undefined reference to `Zwierze::Zwierze()'
ld returned 1 exit status
Chyba jest dość banalny, ale dokładnie nie wiem, o co chodzi...:-(
Z góry dzięki za pomoc!
#include <iostream>
using namespace std;
enum KOLOR {Czerwony, Zielony, Niebieski, Szary, Bialy, Czarny, Brazowy } ;
class Zwierze {
public:
Zwierze();
Zwierze(int);
virtual int PodajWiek() const { return jegoWiek; }
virtual void UstawWiek(int wiek) { jegoWiek = wiek; }
virtual void Spij() const = 0;
virtual void Jedz() const = 0;
virtual void Rozmnazaj() const = 0;
virtual void Idz() const = 0;
virtual void DajGlos() const = 0;
private:
int jegoWiek;
};
class Ssak : public Zwierze {
public:
Ssak() {
cout << "Ssaki sa roznokolorowe...\n";
};
Ssak(int, KOLOR);
virtual void DajGlos() const
{
cout << "Ssaki wydaja rozne glosy...\n";
}
virtual void Rozmnazaj () const
{
cout << "Ssaki rozmnazaja sie przez kopulacje...\n";
}
};
class Ryba : public Zwierze {
protected:
KOLOR jegoKolor;
public:
Ryba();
Ryba(int)
{
cout << "Ryba ma kolor " << jegoKolor << "\n";
}
virtual void Spij () const
{
cout << "Ryba nie zamyka oczu jak spi, ale spi...\n";
}
virtual void Jedz() const
{
cout << "Ryba je plankton...\n";
}
virtual void Rozmnazaj () const
{
cout << "Ryba sklada ikre...\n";
}
virtual void Idz() const
{
cout << "Ryba plywa...\n";
}
virtual void DajGlos() const
{
cout << "Dzieci i ryby glosu to nie maja...\n";
}
};
class Kon : public Ssak {
protected:
KOLOR jegoKolor;
public:
Kon(int, KOLOR)
{
cout << "Kon ma kolor " << jegoKolor << "\n";
}
virtual void Spij () const
{
cout << "Kon spi na stojaco...\n";
}
virtual void Jedz() const
{
cout << "Kon je owies...\n";
}
virtual void Rozmnazaj () const
{
cout << "Kon z klacza kopuluja...\n";
}
virtual void Idz() const
{
cout << "Kon galopuje...\n";
}
virtual void DajGlos() const
{
cout << "Kon rzy...\n";
}
};
class Pies : public Ssak {
protected:
KOLOR jegoKolor;
public:
Pies(int, KOLOR)
{
cout << "Pies ma kolor " << jegoKolor << "\n";
}
virtual void Spij () const
{
cout << "Pies spi w budzie...\n";
}
virtual void Jedz() const
{
cout << "Pies wcina kosci...\n";
}
virtual void Rozmnazaj () const
{
cout << "Pies z suczka kopuluja...\n";
}
virtual void Idz() const
{
cout << "Pies biega...\n";
}
virtual void DajGlos() const
{
cout << "Pies robi hau hau...\n";
}
};
int main()
{
Zwierze *pZwierze=0;
int choice;
bool Koniec = false;
while (1) {
cout << "(1)Pies (2)Kon (3)Ryba (0)Koniec: ";
cin >> choice;
switch (choice)
{
case 1: pZwierze = new Pies(5,Brazowy);
break;
case 2: pZwierze = new Kon(4,Czarny);
break;
case 3: pZwierze = new Ryba (5);
break;
default: Koniec = true;
break;
}
if (Koniec)
break;
pZwierze->DajGlos();
pZwierze->Jedz();
pZwierze->Rozmnazaj();
pZwierze->Idz();
pZwierze->Spij();
delete pZwierze;
cout << "\n";
}
return 0;
}