self in c: Die autonome Implementierung
Das Selbst -Keyword, das in Sprachen wie Php weit verbreitet ist, stellt eine Herausforderung in C aufgrund des Fehlens eines äquivalenten Mechanismus dar. Während eine klassenspezifische Implementierung unter Verwendung von Nested TypedeFs unkompliziert ist, erfordert sie Doppel- und Risiken, die subtile Fehler einführen. In diesem Artikel wird eine elegante Lösung unter Verwendung von DeclType und Vorlagen untersucht, um eine autonome Self -Implementierung zu erreichen.
selbst mit DeclType
den anfänglichen Versuch, sich selbst mit Decltype einzubringen, fehlschlägt, weil es versucht, auf diese außerhalb eines Falls zuzugreifen. Um dies zu beheben, müssen wir die Selbstdeklaration in einer Vorlage zusammenfassen:
templateclass SelfBase : public Ts... { protected: typedef X self; };
Diese Vorlage dient als Basisklasse für Typen, die auf Selbst zugreifen können. X
WITH_SELF_DERIVED(X,...): Adds SelfBase
Examples
schlussfolgerung
durch Nutzung von DeclType und Vorlagen können ein autonomes Selbstmember -Typ in c implementiert werden. Dieser Ansatz ermöglicht die Verwendung von Selbst in Klassen ohne das Risiko stiller Fehler aufgrund fehlerhafter Neudefinition. Die bereitgestellten Komfortmakros machen die Implementierung unkompliziert und flexibel und ermöglichen die Erbschaft mit mehreren Basisklassen und verschiedene Kombinationen von Selbst- und regulären Basisklassen.Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3