please can anyone help me with this problem, my compiler is giving me the message...
line(71)error C2065: 'itsNumberBelievers' : undeclared identifier
line(82)error C2614: 'Pegasus' : illegal member initialization: 'itsNumberBelievers' is not a base or member
now i have copied the code straight from a reference book,
and here it is...
#include <iostream>
using namespace std;
typedef int HANDS;
enum COLOR { Red, Green, Blue, Yellow, White, Black, Brown };
class Animal
{
public:
Animal(int);
virtual ~Animal(){cout << "Animal destructor...\n"; }
virtual int GetAge() const { return itsAge; }
virtual void SetAge(int age) { itsAge = age; }
private:
int itsAge;
};
Animal::Animal(int age):
itsAge(age)
{
cout << "Animal constructor...\n";
}
class Horse : public Animal
{
public:
Horse(COLOR color, HANDS height, int age);
virtual ~Horse(){cout << "Horse destructor...\n"; }
virtual void Whinny() const {cout << "Whinny!... "; }
virtual HANDS GetHeight() const { return itsHeight; }
virtual COLOR GetColor() const { return itsColor; }
protected:
HANDS itsHeight;
COLOR itsColor;
};
Horse::Horse(COLOR color, HANDS height, int age):
Animal(age),
itsColor(color), itsHeight(height)
{
cout << "Horse constructor...\n";
}
class Bird : public Animal
{
public:
Bird(COLOR color, bool migrates, int age);
virtual ~Bird(){cout << "Bird destructor...\n"; }
virtual void Chirp() const {cout << "Chirp... "; }
virtual void Fly() const {cout << "I can fly! I can fly! I can fly! "; }
virtual COLOR GetColor() const { return itsColor; }
virtual bool GetMigration() const { return itsMigration; }
protected:
COLOR itsColor;
bool itsMigration;
};
Bird::Bird(COLOR color, bool migrates, int age):
Animal(age),
itsColor(color), itsMigration(migrates)
{
cout << "Bird constructor...\n";
}
class Pegasus : public Horse, public Bird
{
public:
void Chirp() const { Whinny(); }
Pegasus(COLOR, HANDS, bool, long, int);
virtual ~Pegasus(){cout << "Pegasus destructor...\n"; }
virtual long GetNumberBelievers() const { return itsNumberBelievers; [color=#33CCFF]}// compiler states, 'itsNumberBelievers' an undeclared identifier[/color]
virtual COLOR GetColor() const { return Horse::itsColor; }
virtual int GetAge() const { return Horse::GetAge(); }
private:
long itsNumbersBelievers;
};
Pegasus::Pegasus(COLOR aColor, HANDS height, bool migrates, long NumBelieve, int age):
Horse(aColor, height, age),
Bird(aColor, migrates, age),
itsNumberBelievers(NumBelieve) [color=#33CCFF]// comiler states, Pegasus: illegal member initialization: 'itsNumberBelievers' is not a base or member[/color]{
cout << "Pegasus constructor...\n";
}
int main()
{
Pegasus * pPeg = new Pegasus(Red, 5, true, 10, 2);
int age = pPeg ->GetAge();
cout << "This pegasus is " << age << " years old.\n";
delete pPeg;
return 0;
}
any help on this would be greatly appreciated,

New Topic/Question
Reply




MultiQuote





|