| |
Juni 2003 C++-Diagramm: Diagramm für Schnittstellen 1-11 1 // C++ Kategorie A_out { Öffentlichkeit: A_out(A_ptr& P): ptr_(p) { PTR _ = A::_nil(); } A_out(A_var& P): ptr_(p.ptr _) { release(ptr _); PTR _ = A::_nil(); } A_out(const A_out& A): ptr_(a.ptr _) { } Operator=(const A_out& A_out& A) { PTR _ = a.ptr _; Rückkehr * diese; } Operator=(const A_out& A_var& A) { PTR _ = A::_duplicate(A_ptr(a)); Rückkehr * diese; } Operator=(A_ptr A_out& P) { PTR _ = p; Rückkehr * diese; } Operator A_ptr&() { RückholcPtr _; } Ptr() A_ptr& { RückholcPtr _; } Operator->() A_ptr { RückholcPtr _; } privat: PTR A_ptr& _; }; Der erste Erbauer bindet das Bezugsdatenmitglied mit dem A_ptr& Argument. zweiter Erbauer bindet das Bezugsdatenmitglied mit dem A_ptr Gegenstandhinweis gehalten durch das A_var Argument und benennt dann release() auf dem Gegenstandhinweis. dritter Erbauer, der Kopienerbauer, bindet das Bezugsdatenmitglied an dasselbe A_ptr Gegenstandhinweis springen zum Datenmitglied seines Arguments. Anweisung von ein anderes A_out kopiert das A_ptr bezogen durch das Argument A_out zu den Daten Mitglied. Der überbelastete Zuweisungsoperator für A_ptr weist einfach das A_ptr zu Gegenstandbezugsargument zum Datenmitglied. Der überbelastete Zuweisungsoperator für A_var kopiert A_ptr gehalten durch A_var bevor es den Daten zugewiesen wird Mitglied. Merken Sie, daß Anweisung keinen vorhergehend-gehaltenen Gegenstandhinweis verursacht freizugebender Wert; in dieser Hinsicht das A_out schreiben Sie sich benimmt genau als A_ptr . A_ptr& Umwandlungsoperator bringt das Datenmitglied zurück. ptr() Mitgliedsfunktion, welches verwendet werden kann, um zu vermeiden auf implizite Umwandlung bauen zu müssen, bringt auch die Daten zurück Mitglied. Der überbelastete Pfeiloperator (Operator->() bringt das Datenmitglied zu zurück erlauben Sie, daß Betriebe auf dem zugrundeliegenden Gegenstandhinweis hervorgerufen werden, nachdem er gewesen ist richtig initialisiert durch Anweisung. 1,3,7 Schnittstelle, die Beispiel Abbildet Das Beispiel unterhalb der Erscheinen ein mögliches Diagramm für eine Schnittstelle. Andere Kartenaufnahmen sind auch möglich, aber sie muß die gleiche Semantik und Verbrauch wie dieses Beispiel zur Verfügung stellen. |  |
|
| |
|
|