Heim > Artikel > Backend-Entwicklung > Wie kann ich Konstruktoren in C delegieren, um Codeduplizierung zu vermeiden?
Beim Umgang mit mehreren Konstruktoren in einer C-Klasse kann es vorkommen, dass derselbe Code über alle Konstruktoren hinweg wiederholt wird. Um diesen Prozess zu optimieren, bietet C die Möglichkeit, Konstruktoraufrufe zu delegieren.
In Ihrem Szenario versuchen Sie, den Bitmap(HBITMAP)-Konstruktor vom Bitmap(WORD)-Konstruktor aus aufzurufen. Während Ihr erster Ansatz eine temporäre Bitmap erstellt und damit den anderen Konstruktor aufruft, verwendet die richtige Syntax für die Konstruktordelegierung die Konstruktor-Initialisierungsliste.
Der folgende Code demonstriert den richtigen Ansatz:
Bitmap::Bitmap(HBITMAP Bmp) { // Construct some bitmap stuff.. } Bitmap::Bitmap(WORD ResourceID) : Bitmap((HBITMAP)LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(ResourceID), IMAGE_BITMAP, 0, 0, LR_SHARED)) { }
Durch Platzieren des Konstruktordelegierungsaufrufs in der Initialisierungsliste stellen Sie sicher, dass der Bitmap(HBITMAP)-Konstruktor vor allen anderen Anweisungen im Bitmap(WORD) aufgerufen wird. Konstrukteur. Dadurch können Sie den gemeinsamen Code wiederverwenden, während Sie das Bitmap-Objekt mit unterschiedlichen Parametern initialisieren.
Das obige ist der detaillierte Inhalt vonWie kann ich Konstruktoren in C delegieren, um Codeduplizierung zu vermeiden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!