| |
Juni 2003 C++-Diagramm: Diagramm für Arten Struct 1-29 1 1,10 Diagramm für Arten Struct Anmerkung: Ausgabe 4340 Diagramme eines OMG IDL struct zum C++-struct, wenn jedes structmitglied OMG IDL abgebildet ist zu einem entsprechenden Mitglied des C++-struct. Die C++-Strukturmitglieder erscheinen innen der gleiche Auftrag wie die entsprechenden IDL-Strukturmitglieder. Abbildendes dieses gewährt einfacher Feldzugang sowie gesamte Initialisierung der meisten längenkonstanten structs. Zu erleichtern Sie solche Initialisierung, C++-structs darf nicht verbraucherbestimmte Erbauer haben, Zuweisungsoperatoren oder Verbrennungsöfen und jedes structmitglied müssen von Selbst-gehandhabt sein Art. Mit Ausnahme von Zeichenketten und Gegenstandhinweisen die Art eines C++-struct Mitglied ist das normale Diagramm der Art des Mitgliedes OMG IDL. Für eine Zeichenkette, breite Zeichenkette oder Gegenstandbezugsmitglied der Name des C++-Mitgliedes schreiben Sie wird spezifiziert nicht durch das Diagramm; folglich kann ein compliant Programm nicht verursachen Anmerkung: Ausgabe 4243 Gegenstand dieser Art. Das Verhalten der Art ist dasselbe wie das normale Diagramm (Putzfrau * für Zeichenkette WChar * für breite Zeichenkette und A_ptr für eine Schnittstelle A) schließen Sie aus schrieben Kopienerbauerkopien den Speicher des Mitgliedes und seinen Zuweisungsoperator gibt den alten Speicher des Mitgliedes frei. Diese Arten müssen das in() auch zur Verfügung stellen inout() , out() und _ retn() Funktionen die ihr Entsprechen T_var Arten stellen Sie zur Verfügung, um sie die Parameterüberschreitenmodi stützen zu lassen, die in Tabelle 1-3 spezifiziert werden auf Seite 1-106 . Eine compliant Diagramimplementierung stellt auch überbelastet zur Verfügung operator<< (Einfügung) und Operator > > (Extraktion) Operatoren für das Verwenden der Zeichenkette Mitglieder und breite Zeichenkettemitglieder direkt mit C++-iostreams. Für die anonymen Reihenfolgenmitglieder (angefordert für rekursive Strukturen), ist ein Artname erfordert für das Mitglied. Dieser Name wird erzeugt, indem man ein Unterstreichen zu voranstellt Mitgliedsname und Hinzufügen "_ folgend". Z.B.: // IDL structnullpunkt { langer Wert; sequence<node, Rechengröße 2>; }; Dieses ergibt den folgenden C++-Code: // C++ structnullpunkt { typedef... _ operand_seq; Langer Wert; _ operand_seqrechengröße; }; Im C++-Code oben gezeigt, "... ", im _ operand_seq typedef bezieht sich auf Implementierung-spezifische Reihenfolgenart. Der Name dieser Art wird nicht standardisiert. |  |
|
| |
|
|