Am 14. September 2017 haben wir eine überarbeitete Fassung unserer Datenschutzrichtlinie veröffentlicht. Wenn Sie video2brain.com weiterhin nutzen, erklären Sie sich mit diesem überarbeiteten Dokument einverstanden. Bitte lesen Sie es deshalb sorgfältig durch.

C++ Grundkurs

Methoden anfordern

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Das Anfordern von Methoden mit dem Schlüsselwort default erlaubt es, diese explizit vom Compiler einzufordern, sollte dieser die benötigten Methoden nicht automatisch erzeugen.
02:53

Transkript

In dieser Lektion möchte ich Ihnen Methoden anfordern mit *default* genauer vorstellen. Der Compiler hat eine genaue Vorstellung davon, wie die angeforderten Methoden auszuschauen haben. Er erzeugt sich also nach folgenden Charakteristiken. Sie besitzen *public*-Zugriffsrechte und sind nicht virtuell. Der Copy-Konstruktor und Copy-Zuweisungsoperator erwarten konstante Lvalue-Referenzen. Der Move-Konstruktor und Move-Zuweisungsoperator erwarten nicht-konstante Rvalue-Referenzen. Die Methoden dürfen nicht als *explicit* deklariert werden und keine Ausnahmespezifikationen besitzen. Da stellt sich natürlich die Frage, wie können Sie Methoden vom Compiler anfragen, wenn die nicht dieser Form hier oben genügen sollen. Das geht dadurch, dass Sie die Methoden außerhalb der Klasse definieren. Das zeige ich Ihnen jetzt in der Anwendung. Hier habe ich eine Klasse *MyDate*, die fordert vier Methoden an. Erstens einen Default-Konstruktor, zweitens hier einen sogenannten Zuweisungsoperator, ganz genau einen Copy-Zuweisungsoperator, dann hier den Copy-Konstruktor und zuletzt den Destruktor. Das zeige ich jetzt hier in der Anwendung. Hier verwende ich den Default-Konstruktor 1 matched auf 1. Hier verwende ich den Copy-Zuweisungsoperator 2 matched auf das hier. Hier wende ich den Copy-Konstruktor, die 3 matched auf die 3 hier oben: Hier verwende ich natürlich wieder den Default-Konstruktor, aber den Destruktor. Jetzt zeige ich noch den Fall, wenn die Charakteristiken der Methode von denen abweichen sollen, die der Compiler erzeugt. Hier *MyDataSpecial*. Hier definiere ich außerhalb der Klasse den Default-Konstruktor. Das muss ich aus dem Grund machen, da dieser Default-Konstruktor hier privat ist und *default* ist er eben *public*. Hier definiere ich außerhalb der Klasse den Destruktor. Das muss ich machen, weil der Destruktor hier oben einerseits virtuell ist und andererseits eine Ausnahmespezifikation besitzt. Beides besitzt der vom Compiler erzeugte Destruktor nicht. Hier folgt der Copy-Zuweisungsoperator. Den Copy-Zuweisungsoperator muss ich außerhalb definieren, weil diese hier als explizit deklariert ist. Der Default- Copy-Zuweisungsoperator ist eben nicht explizit und zuletzt noch der Copy-Zuweisungsoperator. Da ist das Argument in diesem Fall eine nicht-konstante Lvalue-Referenz. Der Compiler erwartet aber hier eine konstante Lvalue-Referenz das ist der Grund, wieso ich den Copy-Zuweisungsoperator außerhalb der Klasse definieren muss. Zum Schluss möchte ich noch das Übersetzen des Programms auf der Kommandozeile zeigen. Sie sehen hier die Kommandozeile. Jetzt übersetze ich es. Der Compiler nimmt es an und das Programm funktioniert, wenn es auch nichts ausgibt. In dieser Lektion habe ich Ihnen Details rund um *default* erzeugte Methoden vorgestellt und Ihnen insbesondere gezeigt, dass, wenn Sie von den Charakteristiken der Methoden abweichen, die der Compiler erzeugen will, müssen Sie diese Methoden außerhalb der Klasse definieren.

C++ Grundkurs

Steigen Sie in die mächtige Programmiersprache C++ ein und lernen Sie dabei alle wichtigen Funktionen mit Anwendungsbeispielen kennen.

8 Std. 14 min (147 Videos)
Derzeit sind keine Feedbacks vorhanden...
 

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!