Tapeman Geschrieben 30. September 2004 Teilen Geschrieben 30. September 2004 Hallo, wie jedem bekannt ist, bieten graphische Entwicklungsumgebungen von Programmiersprachen die Möglichkeit, den Inhalt von Strukturen u. o. Ä. beim Schreiben eines Punktes in einer Art Klappliste darzustellen. Wie kann ich es schaffen, das nur Instanzen, aber nicht die Klassen selber in der Auswahl angeboten werden. Hier ein Beispiel: class Z { class V { ... }; class O { ... }; class V1:public V { class O1:public O { ... }; O1* o1; }; class V2:public V { class O2:public O { ... }; O2* o2; }; class V3:public V { class O3:public O { ... }; O3* o3; }; V1* v1; V2* v2; V3* v3; }; Z z; In der Klappliste für z steht dann V,O,V1,V2,V3,v1,v2 und v3, aber ich will nur v1,v2, und v3 angezeigt bekommen. Wie bekomme ich das hin? Muß den Aufbau der Klasse(n) verändern? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dieterds Geschrieben 30. September 2004 Teilen Geschrieben 30. September 2004 Soweit ich weiss, wird sowas für die nächsten Visual Studio Versionen vorgesehen, aber bei C++ Builder oder Visual Studio 2002-2003 habe ich sowas leider noch nicht gefunden Würde mich auch sehr interessieren, wenn dafür jemand eine Lösung hat. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Tapeman Geschrieben 30. September 2004 Autor Teilen Geschrieben 30. September 2004 Ich glaube ich habe eine Lösung gefunden: class Z1 { public: class V { ... }; class O { ... }; class O1:public O { ... }; class O2:public O { ... }; class O3:public O { ... }; class V1:public V { public: O1* o1; }; class V2:public V { public: O2* o2; }; class V3:public V { public: O3* o3; }; }; class Z { public: Z1:V1 v1; Z1:V2 v2; Z1:V3 v3; }; Z z; Gibts da Einschränkungen? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
FighterFigger Geschrieben 30. September 2004 Teilen Geschrieben 30. September 2004 Auch wenn das nicht wirklich die Antwort auf die Frage ist verstehe ich nicht, warum ihr die Klassen in die andere Klasse einbettet. Welche Vorteile hat das gegenüber einem gediegen gewählten Namespace? Und Tapeman - müßte es nicht eher Z1::V1 v1; statt Z1:V1 v1; sein? ... Ich kenne mich mit diesen eingebetteten Klassen nicht aus, aber ein Scope-Operator erscheint mir sinnvoll. klärt mich auf =) Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Tapeman Geschrieben 1. Oktober 2004 Autor Teilen Geschrieben 1. Oktober 2004 Sorry, da habe ich mich vertippt, ich meine natürlich :: . Ich wollte die Klassen nicht sichtbar haben, nur die Instanzen. Mit Namespace? Wie funktioniert das genau? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
PuppetMaster Geschrieben 1. Oktober 2004 Teilen Geschrieben 1. Oktober 2004 Das geht so: namespace deinNS { class foo {}; }; int main { deinNS::foo f; return 0; } //oder using namespace deinNS; int main { foo f; return 0; } [/PHP] Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
FighterFigger Geschrieben 1. Oktober 2004 Teilen Geschrieben 1. Oktober 2004 Beim Beispiel vom Tapeman also: namespace MyClasses { class V { ... }; class O { ... }; class O1:public O { ... }; class O2:public O { ... }; class O3:public O { ... }; class V1:public V { public: O1* o1; }; class V2:public V { public: O2* o2; }; class V3:public V { public: O3* o3; }; }; class Z { public: MyClasses::V1 v1; MyClasses::V2 v2; MyClasses::V3 v3; }; Z z; Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Tapeman Geschrieben 5. Oktober 2004 Autor Teilen Geschrieben 5. Oktober 2004 Okay, sieht relativ einfach aus. Und was sind die Vorteile gegenüber meiner Variante, außer daß ich dann die Obere Klasse (bei mir Z1) nicht mehr angeben brauch? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
FighterFigger Geschrieben 5. Oktober 2004 Teilen Geschrieben 5. Oktober 2004 Was heißt hier "Vorteile" ) Ich persönlich kenne diese Klassen-in-Klassen (weiß nichtmal mehr, wie die heißen) ... kenne sie nur aus ganz seltenen Fällen bei untypischen Design-Entwürfen. Im Prinzip benutzt du eine Klasse, um andere Klassen wie in einem Paket zu kapseln. Aber genau für diese Aufgaben sind Namespaces da. Einen Vorteil kenne ich nicht, außer, daß es vielleicht in EngineeringTools anders aussieht ... Aber ich wollte dich ja auch nicht berichtigen, sondern vor allem eben wissen, warum du dafür diese Klasse nutzt, eben WEIL ich das nur selten so sehe und eben WEIL das eigentlich nicht wirklich einen Unterschied macht. ) Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Tapeman Geschrieben 5. Oktober 2004 Autor Teilen Geschrieben 5. Oktober 2004 Ich wollte dem Objektmodell nahe kommen, und das kennt keine "namespaces". Da gibs Klassen, mit denen man vererben und generalisieren kann. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.