| |
1-50 Abbildende C++-Sprache, v1.1 Juni 2003 1 const LongArray_slice * in()const; LongArray_slice * inout(); LongArray_slice * out(); LongArray_slice * _ retn(); // andere Umwandlungsoperatoren zur Unterstützung // Parameterüberschreiten }; Weil Reihen in regelmäßige C++-Reihen abgebildet werden, stellen sie spezielle Probleme für dar das Art-sichere irgendwelche Diagramm beschrieben beim "Diagramm für die irgendeine Art" auf Seite 1-52. Zu erleichtern Sie ihren Gebrauch mit irgendwie abbildend, muß eine compliant Implementierung auch stellen Sie für jede Reihenart eine eindeutige C++-Art zur Verfügung deren Name aus dem Reihennamen besteht gefolgt vom Suffix _ forany . Diese Arten müssen eindeutig sein, um Funktionen zu erlauben auf ihnen überbelastet werden. Wie Array_var Arten, Array_forany Arten gewähren machen Sie zur zugrundeliegenden Reihenart, aber anders als Array_var zugänglich das Array_forany Art löscht nicht die Ablage der zugrundeliegenden Reihe nach seiner eigenen Zerstörung. Dieses ist weil die irgendwelche das Diagramm behält Speicherbesitz, wie in Abschnitt 1,16,3 beschrieben, "Extraktion von irgendwelchen," auf Seite 1-57. Die Schnittstelle des Array_forany Art ist zu der des Array_var identisch schreiben Sie, aber sie kann möglicherweise nicht als typedef zum Array_var eingeführt werden schreiben Sie durch compliant Implementierung, da sie von anderen Arten zwecks unterscheidbar sein muß Funktionsüberbelastung. Auch das Array_forany Erbauernehmen Array_slice * Parameter nimmt auch a Boolesch nocopy Parameter, der zurückfällt zu FALSCHEM // C++ Kategorie Array_forany { Öffentlichkeit: Array_forany(Array_slice *, Boolesches nocopy = FALSCH); ... }; Das nocopy Markierungsfahne läßt eine nicht-kopiereneinfügung von einem Array_slice zu * in Irgendwelche . Jedes Array_forany Art muß auf dem gleichen Niveau der Verschachtelung wie seine Reihe definiert werden Art. Für dynamische Verteilung von Reihen, müssen compliant Programme spezielle Funktionen verwenden definiert am gleichen Bereich wie die Reihenart. Für Reihe T sind die folgenden Funktionen vorhanden für ein compliant Programm: // C++ T_slice * T_alloc(); T_slice * T_dup(const T_slice *); leeres T_copy(T_slice * zu, const T_slice * von); leeres T_free(T_slice *); |  |
|
| |
|
|