| |
1-8 Abbildende C++-Sprache, v1.1 Juni 2003 1 ? B_var zu A_ptr ? B_var zu Object_ptr Implizites Verbreitern von einem B_var zu A_var oder Object_var wird nicht gestützt; stattdessen Verbreitern zwischen _ var Arten als Gegenstandreferenzen erfordert ein Anruf _ Duplikat (beschrieben in Abschnitt 1,3,3, "in den Gegenstandbezugsoperationen," auf Seite 1-8) . 1 Ein Versuch von einem _ var implizit verbreitern Art zu anderen muß eine Kompilierzeitstörung verursachen. 2 Anweisung zwischen zwei _ var Gegenstände der gleichen Art wird gestützt, aber verbreiternd Anweisungen sind nicht und müssen eine Kompilierzeitstörung verursachen. Verbreiternde Anweisungen können seien mit _ Duplikat getan Sie . Die gleichen Richtlinien beantragen Gegenstandbezugsarten, die sind- genistet in einer komplizierten Art, wie einer Struktur oder einer Reihenfolge. // C++ B_ptr BP =... A_ptr AP = BP; // implizites Verbreitern Objp Object_ptr = BP; // implizites Verbreitern objp = AP; // implizites Verbreitern Bv B_var = BP; // bv nimmt Besitz von BP an AP = bv; // behält das implizite Verbreitern, bv // Besitz von BP obp = bv; // behält das implizite Verbreitern, bv // Besitz von BP A_var Handels- = bv; // ungültige, Kompilierzeitstörung A_var Handels = B::_duplicate(bv);// Handels, bv beide beziehen sich auf BP B_var bv2 = bv; // implizites _ Duplikat A_var av2; av2 = Handels; // implizites _ Duplikat 1,3,3 GegenstandcBezugsoperationen Begrifflich der Gegenstand Kategorie im CORBA Modul ist die niedrige Schnittstellenart für alle CORBA-Gegenstände; folglich kann jeder möglicher Gegenstandhinweis verbreitert werden auf der Art Object_ptr . Wie mit anderen Schnittstellen, definiert das CORBA-namespace auch die Art Object_var . CORBA definiert drei Betriebe auf jedem möglichem Gegenstandhinweis: Duplikat, Freigabe und is_nil . Merken Sie daß diese sind Betriebe auf dem Gegenstandhinweis, nicht der Gegenstand Implementierung. Weil das Diagramm nicht daß Gegenstandhinweise auf erfordert 1. Wenn T_ptr wird zu T abgebildet * ist es unmöglich in C++, das implizite Verbreitern zur Verfügung zu stellen zwischen T_var Arten beim die notwendige Verdopplungsemantik für auch zur Verfügung stellen T_ptr Arten. 2. Dieses kann erzielt werden, indem man alles T_var ableitet Arten als Gegenstandreferenzen von einem niedrigen _ var klassifizieren Sie und den Zuweisungsoperator für _ var dann bilden privat innerhalb jedes T_var Art. |  |
|
| |
|
|