C++ - Klassen und structs - Scope probleme

Dieses Thema im Forum "C/C++" wurde erstellt von hydra, 14.07.2005.

  1. hydra

    hydra praetorian

    Dabei seit:
    29.01.2003
    Beiträge:
    37
    Zustimmungen:
    0
    Ort:
    AUSTRIA - CARINTHIA
    Grüß euch!

    Habe folgendes Problem:

    habe eine Klasse A, die ein struct B und wiederum eine Klasse C enthält.
    Zusätzlich wird in der Klasse A per default Konstruktor eine Instanz S des structs B erstellt, wodurch die struct members Werte erhalten.

    Nun möchte ich aber im Konstruktor der Klasse C auf die Werte der Instanz S zugreifen. Kann das funktionieren und wenn dann wie?

    Es folgt der Code dann ist es leichter verständlich:
    Code:
    //------------------------
    class A
    {
    
      //------------------------
      struct B
      {
         int memberB;
         struct(){ memberB = 5;}
      }
    
      B S;   // Instanz S des structs B
    
      //------------------------
      class C
      {
          int memberC;
          C();
      }
    }
    
    //------------------------
    // Konstruktor der Klasse C
    A::C::C()
    {
          memberC = A::S.memberB; // ?????? wie kann ich auf memberB  von S 
                                               //hier zugreifen (so sicher nicht)
    }
    

    Es ist ein Horrorszenario, denn ich muss die Klasse A in dieses bestehende Chaos, dass ich nicht verändern darf, implementieren.

    Danke für eure Hilfe.

    Lg,

    Robin
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. Konrad

    Konrad Jungspund

    Dabei seit:
    13.06.2004
    Beiträge:
    20
    Zustimmungen:
    0
    Siehe Code, ansonsten würde Ich sagen das 'C' einen Zeiger oder eine Referenz auf das B-Objekt 'S' brauch. Dann könnte man per memberC = SPtr->memberB oder als Referenz memberC = SRef.memberB schreiben.
     
  4. hydra

    hydra praetorian

    Dabei seit:
    29.01.2003
    Beiträge:
    37
    Zustimmungen:
    0
    Ort:
    AUSTRIA - CARINTHIA
    natürlich sollte der Konstruktor des structs B() heißen, Freudscher Tippfehler ;-) (den wollte ich immer schon einmal einführen)

    Diese Überlegungen hab ich auch schon angestellt, nur ist das ein ziemlich murks-lösung, anders gehts aber glaub ich nicht, den es gibt nur den scope operator mit dem man tieferliegendes sichtbar machen kann, aber nicht was darüber liegt...

    hat jemand vielleicht eine andere Idee?
     
  5. MadJoe

    MadJoe Eroberer

    Dabei seit:
    14.03.2005
    Beiträge:
    66
    Zustimmungen:
    0
    hallo

    wie möchtes du überhaupt auf S zugreifen? es ist ja kein statisches member, so wie ich das sehe, also ohne instanz von A sehe ich da schwarz...

    und leider (oder gott sei dank) hat die gekapselte klasse keinen programmtechnischen bezug zur übergeordneten klassen, sie ist lediglich teil des namensraums von A, um den code besser zu ordnen, das war es dann aber auch schon mit der verwandtschaft.

    was dein prinzipielles problem mit dem scope operator angeht: nachdem ja die klasse A global ist, kannst du sowieso über A:: ... auf ihre unterklassen bzw. statischen member zugreifen, ganz egal wie tief du drinnen bist...

    und ja die lösung sollte nur mit referenz/zeiger möglich sein, sowas sollte aber auch die elegante lösung sein

    grüße joe
     
  6. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
Thema:

C++ - Klassen und structs - Scope probleme

Die Seite wird geladen...

C++ - Klassen und structs - Scope probleme - Ähnliche Themen

  1. Ansprechen einerPointervarible von einer Klassen

    Ansprechen einerPointervarible von einer Klassen: Hi, ich habe mal wieder ein paar Verständnissproblem bei c++, wo ich hoffe das Ihr mir dabei helfen könnt. Zum einen habe ich eine Klasse Klasse{...
  2. Zusammenspiel von Klassen

    Zusammenspiel von Klassen: Hi, da ich meine c++ Kentnisse mal wieder ein wenig aufpolieren will, brauche ich mal wieder Eure hilfe(merkwürdig wenn's nicht so wär ;)). Ich...
  3. (mein) awk kennt keine Zeichenklassen?!?

    (mein) awk kennt keine Zeichenklassen?!?: Hi, ich hab hier ein Problem, welches ich nicht so recht verstehe. Hab hier ein VmWare Ubuntu Etchy Server (Testsystem) laufen und ansich macht...
  4. dynamische klassen /statische klassen

    dynamische klassen /statische klassen: // stellt cout bereit # include <iostream.h> class Haus { public: double Gf; double Hk; int At; public: Haus () { cout...
  5. CPP Pointer Templates auf Klassen

    CPP Pointer Templates auf Klassen: Hallo zusammen Ich habe eine OpenGL Initialisierungsklasse gebastelt. Dazu kommen jetzt noch ein paar Klassen für Primitives (z.B. Quader)...