| |
1-40 Abbildende C++-Sprache, v1.1 Juni 2003 1 // C++ Z z; z._default(); // implizites Rückstellungsmitglied vorgewählt Boolesche Scheibe = z._d(); // Scheiben== FALSCH U u; // Anschluß U vom vorhergehenden Beispiel u._default(); // Störung, kein _ default() bereitgestellt Für Anschluß Z das _ default(benennend) Modifizierfaktorfunktion veranläßt den Wert des Anschlußes zu sein nur bestanden aus dem Modulationsumwandlerwert von FALSCHEM da es keine ausdrückliche Rückstellung gibt Mitglied. Für Anschluß U _ default(benennend) verursacht eine Kompilationsstörung weil U hat ein ausdrücklich erklärter Rückstellungsfall und folglich kein _ default() Mitgliedsfunktion. A _ default() Mitgliedsfunktion wird nur für Anschlüße mit impliziter Rückstellung erzeugt Mitglieder. Anmerkung: Ausgabe 4243 Compliant Programmgebrauch neu Anschlüße und Löschung dynamisch zuteilen freigeben sie. 1,13 Diagramm für Reihenfolgenarten Eine Reihenfolge wird zu einer C++-Kategorie abgebildet, die wie eine Reihe mit einer gegenwärtigen Länge sich benimmt und eine maximale Länge. Für eine gesprungene Reihenfolge ist die maximale Länge in implizit ordneten Art der Reihe nach und können nicht durch den Programmierer ausdrücklich gesteuert werden. Für unbegrenzte Reihenfolge, der Ausgangswert der maximalen Länge kann in spezifiziert werden ordnen Sie Erbauer der Reihe nach, um Steuerung über der Größe der Ausgangspufferverteilung zu erlauben. Länge einer Reihenfolge ändert nie ohne einen ausdrücklichen Anruf zum length()mitglied Funktion. Für eine unbegrenzte Reihenfolge die Länge auf einen größeren Wert als die gegenwärtige Länge einstellend kann die Reihenfolgendaten neu zuteilen. Neuverteilung ist mit dem Verursachen von a begrifflich gleichwertig neue Reihenfolge der gewünschten neuen Länge, die alten Reihenfolgenelemente null kopierend durch length-1 in die neue Reihenfolge und die alte Reihenfolge dann in zuweisen, zu sein selben wie die neue Reihenfolge. Einstellung die Länge auf einen kleineren Wert als die gegenwärtige Länge beeinflußt nicht, wie die Ablage, die mit der Reihenfolge dazugehörig ist, manipuliert wird. Anmerkung, jedoch sind das die Elemente, die durch diese Verkleinerung verwaist werden, nicht mehr zugänglich und das ihre Werte können nicht zurückgewonnen werden, indem man die Reihenfolgenlänge auf seinen ursprünglichen Wert erhöht. Für eine gesprungene Reihenfolge versuchend, die gegenwärtige Länge auf einen Wert größer einzustellen als die maximale Länge, die in der Spezifikation OMG IDL gegeben wird, produziert unbestimmtes Verhalten. Für jedes unterschiedliche typedef, das eine anonyme Reihenfolgenart, ein compliant Diagramm nennt Implementierung liefert eine unterschiedliche C++-Reihenfolgenart. Z.B.: // IDL typedefsequence<long > -LongSeq; typedefsequence<LongSeq, 3> LongSeqSeq; |  |
|
| |
|
|