C++ - header-Datei und die Funktion Erklärung der Endung "= 0"
Habe ich den folgenden code innerhalb der .h-Datei und ich bin mir nicht sicher, was macht der abtretungserklärung zu tun und wie heißt es richtig?
virtual void yield() = 0;
Dachte ich, dass die Funktion gibt den Wert 0 vorbelegt, da diese Funktion gibt void zurück, ich bin ein wenig verwirrt. Kann jeder Kommentar über diese und vielleicht sagen wie kann ich finden für diese Zuordnung, ich meine, wie heißt es im C++ - jargon?
Dank.
- Lesen Sie über virtuelle Funktionen.
- Und zur info auf warum diese seltsame syntax verwendet, siehe stackoverflow.com/questions/2156634/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist eine rein virtuelle Funktion. Dies bedeutet, dass die Unterklassen implementieren diese Funktion, ansonsten sind Sie Abstrakt, d.h. Sie können nicht erstellen Objekte der Klasse.
Die Idee ist, dass eine Klasse verfügbar machen kann, eine bestimmte Methode, sondern Unterklassen haben, um es zu implementieren. In diesem Beispiel
ISomeInterface
stellt eineToString
Methode, aber es gibt keine sinnvolle default-Implementierung, so dass es macht die Methode rein virtuell. Unterklassen wieSomeInterfaceImpl
können Ihnen dann eine passende Umsetzung.Den
= 0
syntax deklariert eine rein virtuelle Funktion, es hat nichts zu tun mit der return-Wert.Wenn eine Klasse enthält mindestens eine rein virtuelle Funktion, das macht die Klasse "abstract", was bedeutet, es kann nicht instanziiert werden.
In der Praxis werden diese Klassen müssen konkretisiert werden, indem bilden von Unterklassen und die Implementierung der virtuellen Funktion(en).
wenn eine rein virtuelle Methode (aka abstract) schauen Sie hier, oder google http://www.artima.com/cppsource/pure_virtual.html
= 0 bedeutet nicht, Standardwert zurückgegeben, es erfolgt eine Benachrichtigung, die Funktion ist rein virtuelle
Die syntax ist unverständlich, aber das "=0" bedeutet die Methode ist eine rein virtuelle Funktion. Es macht die Klasse Abstrakt (Sie können nicht instanziieren), und es ist der Implementierung überlassen abgeleiteten Klassen.
Wird verwendet, wenn alle, die Sie wollen zu definieren, ist eine Schnittstelle. Verwenden Sie das Schlüsselwort virtual, wenn Sie wollen, definieren Sie eine Schnittstelle und auch eine default-Implementierung.