Derived Classes and Base Classes

Only available on StudyMode
  • Download(s) : 201
  • Published : January 20, 2012
Open Document
Text Preview
Derived Classes and Base Classes
Mario Padilla
IT/218
September 2, 2011
University of Phoenix/Axia College

Derived Classes and Base Classes
Considering that the ostrich is a flightless bird, it is reasonable to derive a class CHawk from CBird, but not a COstrich. This is mainly because the function fly () sets an altitude of 100 and, as everyone knows, the ostrich cannot fly. If we had to derive COstrich from CBird probably need to provide a function fly () to return 0, and this could break existing code, which sets the altitude to 100. This could be a derivation of a class avian;

class CAvian
{
protected:
int wingSpan;
int eggSize;
};

class CFlyingBird : public CAvian
{
protected:
int airSpeed;
int altitude;
public:
virtual void fly() { altitude = 100; }
};

class CFlightlessBird : public CAvian
{
// Arguments involving flightless birds
};

class CHawk: public CFlyingBird
{

};

class COstrich : public CFlightlessBird
{

};

One of the main properties of the classes is inheritance. This property allows us to create new classes from existing classes, retaining the properties of the original class and adding new ones. Each new class obtained through inheritance is known as derived class, and classes from which it derives are called base classes. In addition, each derived class can be used as a base class for a new derived class. And each derived class can be one or more base classes. In the latter case are referred to bypass manifold. This allows us to create a class hierarchy as complex as necessary. Well, but what are the advantages derived classes? Actually, that's the principle of object oriented programming. This property allows us to encapsulate different parts of any real or imaginary object, and links to objects made of the same basic type, will inherit all its features.
tracking img