Wann müssen wir einen default-Konstruktor?

Meine Frage ist einfach. Wann müssen wir einen default-Konstruktor?
Bitte entnehmen Sie den folgenden code:

class Shape
{
    int k;

public:
    Shape(int n) : k(n) {}
    ~Shape() {}
};

class Rect : public Shape
{
    int l;

public:
    Rect(int n): l(n)
    {}      //error C2512: 'Shape' : no appropriate default constructor available

    ~Rect() {}
};
  1. Warum der compiler nicht die Erzeugung der null-argument default-Konstruktors implizit in der Klasse Rect?
  2. Laut meines Wissens, wenn eine Klasse (Rect) ist abgeleitet von einer anderen Klasse (Form), der hat default-Konstruktor (implizit generiert oder explizit), wird der default-Konstruktor erzeugt werden sollen, durch den compiler.

InformationsquelleAutor der Frage XMarshall | 2011-03-31

Schreibe einen Kommentar