Derived Classes and Base Classes
Essay by people • November 28, 2011 • Essay • 284 Words (2 Pages) • 1,568 Views
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.
...
...