-  Η ιεραρχία των κλάσεων εκφράζεται στη C++ με τον ορισμό μιας κλάσης που
είναι υποκλάση (subclass) μιας άλλης κλάσης (που
ονομάζεται βασική κλάση (base class)).
 -  Η σύνταξη για τον ορισμό αυτό είναι της μορφής:
class υποκλάση : public βασική_κλάση { ...
 -  Κάθε υποκλάση κληρονομεί (inherits) τις μεθόδους
και τις ιδιότητες που έχουν οριστεί ως public στη βασική κλάση.
 -  Η υποκλάση δεν έχει πρόσβαση στις μεθόδους και τις ιδιότητες
που έχουν οριστεί ως private στη βασική κλάση.
 -  Η υποκλάση μπορεί να ορίσει νέες ιδιότητες και μεθόδους και να
αντικαταστήσει ιδιότητες και μεθόδους που έχει ορίσει η βασική κλάση.
 -  Παράδειγμα:
class shape {
private:
        int x, y;               // Position
public:
        void setposition(int x, int y);
};
void shape::setposition(int x, int y)
{
        shape::x = x;
        shape::y = y;
}
class circle : public shape {
private:
        int radius;
public:
        void setradius(int r);
};
class rectangle : public shape {
private:
        int height, width;
public:
        void setdimensions(int h, int w);
};
main()
{
        circle c;
        rectangle r;
        r.setposition(1, 2);
        c.setposition(3, 4);
}
 -  Μπορούμε να ορίσουμε μια άλλη κατηγορία μεθόδων και ιδιοτήτων
με όνομα protected.  Αυτές είναι προσβάσιμες από τις υποκλάσεις της
κλάσης μας, αλλά όχι από άλλες συναρτήσεις.
Παράδειγμα:
class shape {
private:
        int x, y;
protected:
        int getx();             // Can be used by subclasses
        int gety();
public:
        void setposition(int x, int y);
}
 -  Ένας δείκτης σε μια υποκλάση μπορεί αυτόματα να μετατραπεί σε
δείκτη στη βασική της κλάση.  Το αντίθετο δεν επιτρέπεται.
Παράδειγμα:
main()
{
        circle c;
        rectangle r;
        shape *sp;
        r.setposition(1, 2);
        c.setposition(3, 4);
        sp = &c;                        // Implici conversion
        sp->setposition(3, 3);          // Set the position of c
}
 -  Μια κλάση μπορεί να δηλωθεί με 
πολλαπλή κληρονομικότητα (multiple inheritance) με
τη σύνταξη:
class υποκλάση : public βασική_κλάση1, public βασική_κλάση2, ... { ... 
Στην περίπτωση αυτή η κλάση κληρονομεί τα μέλη και τις μεθόδους όλων
των βασικών κλάσεων που δηλώθηκαν.