1 Replies - 539 Views - Last Post: 16 May 2009 - 10:49 AM Rate Topic: -----

#1 daFish  Icon User is offline

  • D.I.C Head

Reputation: 0
  • View blog
  • Posts: 61
  • Joined: 14-March 09

undeclared identifier

Post icon  Posted 16 May 2009 - 10:31 AM

hi,
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,

Is This A Good Question/Topic? 0
  • +

Replies To: undeclared identifier

#2 OliveOyl3471  Icon User is offline

  • Everybody's crazy but me!
  • member icon

Reputation: 134
  • View blog
  • Posts: 6,581
  • Joined: 11-July 07

Re: undeclared identifier

Posted 16 May 2009 - 10:49 AM

View PostdaFish, on 16 May, 2009 - 12:31 PM, said:

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


Read your error messages. Did you declare itsNumberBelievers before you tried to use it?
If you did, is it spelled exactly the same way every time?

	virtual ~Pegasus(){cout << "Pegasus destructor...\n"; }
	virtual long GetNumberBelievers() const { return itsNumberBelievers; }// compiler states, 'itsNumberBelievers' an undeclared identifier[/color]
	virtual COLOR GetColor() const { return Horse::itsColor; }	
	virtual int GetAge() const { return Horse::GetAge(); }
private:
	long itsNumbersBelievers;


You have an extra s in the declaration of your variable, see?

This post has been edited by OliveOyl3471: 16 May 2009 - 10:58 AM

Was This Post Helpful? 0
  • +
  • -

Page 1 of 1