Während in den libssh library Lesen, sah ich, dass sie die Zuweisung-it-ausplanen-it Muster speziell sagenWarum XXXX_new und XXXX_free über neue und löschen?
libssh folgt. Jedes Objekt, das Sie ordnen mit xxxxx_new() muss mit xxxxx_free freigegeben werden()
Ist das etwas, das von ihm kommt eher eine C-Bibliothek ist als eine C++ Bibliothek, in der neue und löschen nicht vorhanden oder ist es ein allgemeine Praxis, um neue zu vergessen und zu löschen und manuell erstellen und löschen Sie Objekte mit den xxxx_new und xxxx_free Muster? Wenn es eine gängige Praxis ist, was sind die Vorteile gegenüber new und delete und den Konstruktoren und Destruktoren, die aufgerufen werden?
[EDIT] Hinzugefügt den Link zu, wo ich dies als <a>
Tag auf "libssh Bibliothek" für diejenigen, die Fragen lesen.
Haben Sie einen Link, wo Sie das gelesen haben? – Default
Abgesehen davon, dass es sich um eine C-Schnittstelle handelt, besteht die Hauptunterscheidung darin, dass sie ändert, wer die Objekterzeugung steuert - den Konsumenten gegenüber der Bibliothek. Mit dieser Schnittstelle steuert die Bibliothek mehr, wodurch sie mehr Leistung erhält (z.Protokollierung, Haltepunkte, globale Konfiguration, Vermeidung von nicht übereinstimmenden 'neuen' und' delete' Aufrufen aus verschiedenen DLLs usw.) – Cameron
ssh_new pairs mit ssh_free, ssh_scp_new Paare mit ssh_scp_free, ssh_string_new Paare mit ssh_string_free, ssh_event_new Paare mit ssh_event_free. Jeweils die allocate- und die free-Funktionen für Session-, scp-, string- und event-Objekte isoliert die Details der Allokator- und Objektimplementierung. Die C++ - Neu- und -Deleteoperatoren sind in einer C-Bibliothek nicht nützlich. –