Wie nennen die Originale Funktion nach dem überschreiben in C++?

Ich serialisieren, die meisten meiner Klassen mit zwei Funktionen read() und write(). Was ich möchte, zu tun haben, ist das read/write () - Funktion der Basisklasse aufgerufen, aus den Unterklassen so, dass ich mich nicht zu wiederholen, die Serialisierung-code mehrere Male.

Beispiel:

class Base
{
public:
   base();
   virtual read(QDataStream&);
   virtual write(QDataStream&);
private:
   int a, b, c, d;
}

class Sub : public Base
{
public:
    Sub();
    read(QDataStream&);
    write(QDataStream&);
private:
    int e, f, g, h;
}

So, in diesem Beispiel möchte ich den code zum Lesen/schreiben a,b,c,d zu kommen von der Basis. Sub wäre dann call Base::read(QDataStream&) und dann hinzufügen, was Attribute sind einzigartig Sub. So bin ich nicht wiederholen Sie den serialisierungscode für jede Unterklasse (und möglicherweise vergessen, dies zu tun).

  • Beachten Sie, dass dies ist, heißt eigentlich "überschreiben" der Methode. "Überladen" ist, wenn Sie mehrere Methoden, die den gleichen Namen aber unterschiedliche Typen der Argumente. Zum Beispiel wird eine string-Klasse könnte überlastung operator+() zu geben, der + - operator Bedeutung, wenn strings beteiligt sind.
  • Sie sollten versuchen, um die Beispiele korrekt. Die member-Funktionen fehlt, sind die Rückgabewerte der Typ heißt Base, aber es scheint ein base Konstruktor...
  • danke für die Klärung Caleb.
InformationsquelleAutor jecjackal | 2011-07-05
Schreibe einen Kommentar