Heim > Backend-Entwicklung > C++ > Was ist der richtige Weg, Konstruktoren in C zu delegieren?

Was ist der richtige Weg, Konstruktoren in C zu delegieren?

Barbara Streisand
Freigeben: 2024-11-20 15:34:19
Original
215 Leute haben es durchsucht

What's the Correct Way to Delegate Constructors in C  ?

Konstruktoren delegieren

Das Delegieren eines Konstruktors beinhaltet den Aufruf eines anderen Konstruktors aus dem Konstruktorkörper heraus, um eine redundante Codeausführung zu vermeiden.

Richtiger Ansatz

Der zweite vorgestellte Codeblock ist die korrekte Implementierung für die Konstruktordelegation in C . Es verwendet die Initialisierungsliste des Konstruktors:

Bitmap::Bitmap(WORD ResourceID) : Bitmap((HBITMAP)LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(ResourceID), IMAGE_BITMAP, 0, 0, LR_SHARED))
{
}
Nach dem Login kopieren

Initialisierungsliste

Mit der Initialisierungsliste können Sie ein Objekt beim Erstellen direkt initialisieren. Indem Sie den HBITMAP-Wert an den Bitmap(HBITMAP)-Konstruktor in der Initialisierungsliste übergeben, delegieren Sie die Konstruktion an den anderen Konstruktor.

Falscher Ansatz

Der erste Codeblock versucht zu delegieren mit:

Bitmap(BMP);
Nach dem Login kopieren

Dadurch wird jedoch ein temporäres Bitmap-Objekt erstellt und nicht an das vorhandene delegiert Konstruktor.

Delegierungsbereich

Beachten Sie, dass die Konstruktordelegierung nur in der Initialisierungsliste des Konstruktors und nicht innerhalb des Konstruktorkörpers erfolgen kann. Die Verwendung innerhalb des Körpers würde zu einer rekursiven Konstruktion führen, die in C nicht zulässig ist.

Das obige ist der detaillierte Inhalt vonWas ist der richtige Weg, Konstruktoren in C zu delegieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage