Verschiedene Möglichkeiten ein Objekt mit virtuellen Methoden zu erstellen?
-
So hallo, bin auch ma wieder da. Also wenn ich das richtig verstanden habe, dann gibt es doch 3 Möglichkeiten ein Objekt mit virtuellen Methoden zu erstellen, und zwar:
**-**entweder mit einer Referenz
**-**mit einem Zeiger und auf diesen dann die Adress eines abgeleiteten Objekt zeigen lassen.
**-**mit einem Zeiger und auf diesen dann einen mit "new" reservierten Speicherbereich, mit dem Typ einer abgeleiteten Klasse, zeigen lassen.Is das so ungefähr richtig? Oder hab ich da n bisschen was verpeilt? Wie erstellt ihr eure Objekte die virtuelle Methoden beinhalten?
Hier mal n Beispiel zu dme was ich gesagt habe:#include <iostream> using namespace std; class Alphabet { public: Alphabet() {} ~Alphabet() {} virtual void Name() const {cout << "Alphabte\n";} }; class A : public Alphabet { public: A() {} ~A() {} void Name() const {cout << "Buchstabe A im Alphabet\n";} }; int main() { A UnterKlasse1; A UnterKlasse2; Alphabet &Basisklasse1=UnterKlasse1; Alphabet *Basisklasse2=&UnterKlasse2; Alphabet *Basisklasse3=new A; Basisklasse1.Name(); Basisklasse2->Name(); Basisklasse3->Name(); return 0; }Dankeschön schon mal im Voraus.
-
Das ist schon grundsätzlich richtig so, aber Basisklassen sollte auf jeden Fall einen virtuellen Destruktor haben.