Schluss von Memberklasse auf Basisklasse



  • Hallo.

    ich habe irgendeine Memberklasse (z.B. class Foo::Bar;). Wie kann ich nun möglichst einfach class Foo herausfinden?
    Gibt es da nicht auch was tolles von boost?



  • Hä ? Wo Du wolle ?
    Was bedeutet "... eine Memberklasse rausfinden ..." ?
    Was ist ein "... Schluss von Memberklasse auf Basisklasse ..." ?
    😕 😮 😕

    Zur Info: Memberklasse bedeutet:

    class Outer {
       // ... Elemente von Outer
       class Inner {
       //... Elemente von Inner
       };
    };
    

    Das bedeutet, dass Outer eine Klassendefinition von Inner beinhaltet, ... aber damit beinhaltet ein Outer-Objekt immer noch kein Inner-Objekt. Die umgebenede Klasse ist also nichts weiter als eine Art "Namespace mit Zugriffsschutz".

    Zur Verdeutlichung:

    class Outer {
    public:
       int i;
       class Inner {
          double d;
       };
    };
    
    class Outer_mit_inner_Member {
    public:
       int i;
       class Inner {
          double d;
       };
       Inner inner;
    };
    
    int main() {
       Outer out1; // Hier drin ist nur ein int
       out1.i = 1;
    
       Outer::Inner inner1; // Hier drin ist nur ein double
       inner1.d = 2.3;
    
       Outer_mit_inner_Member::Inner inner2; // hier drin ist auch nur ein double
       inner2.d = 3.4;
    
       Outer_mit_inner_Member outer2; // Hier drin: Ein int und ein Inner-Objekt mit einem double drin
       outer2.i = 4;
       outer2.inner.d = 5.6;
     ...
    

    Alles klar ? Sonst stell' Deine Frage doch nochmal ein wenig präziser...

    Gruß,

    Simon2.

    P.S.: Falls Du "Reflections" suchst: Die gbt's in C++ nicht.
    Boost könnte da vielleicht was "emulieren" (kenne mich mit boost nicht aus), glaube es aber nicht...


Anmelden zum Antworten