Variablen weiter geben



  • @Bashar: War nur'n Spaß, ich bin sicher mit etwas Mühe kriegt man einen Ausdruck hin, für den es unentscheidbar ist, ob er nun eine Wiederholungsanweisung ist oder nicht. 😉

    @Kobold: Genau bei welchen Bezeichnern sagt er, daß sie nicht deklariert sind?
    Herje, jetzt rück halt mal ein paar Infos raus und laß Dir nicht alles aus der Nase ziehen!
    Und zeig mal die Codestelle wo die Deiner Meinung nach deklariert sind. Und zeig am besten mal die komplette Methode und nicht nur den Schnipsel, hab da so ne Ahnung...

    MfG Jester



  • bei m_iv1 und bei m_iv2 gibt er die Fehlermeldung aus.
    das sind auch die zwei varibalen die ich vorhin als member-variablen mit public-zugriff erstellt habe.



  • Diese zwei sind vermutlich Member der anderen Klasse. Du brauchst also eine Instanz der anderen Klasse (oder einen Zeiger/Referenz darauf).

    Falls du nicht weißt, was eine Instanz ist, und was sie von der Klasse unterscheidet, solltest du die GUI-Programmierung erst mal lassen und mit den Grundlagen anfangen.



  • Ok, danke das mit den zeiger ist eine tolle idee
    denke das es so vielleicht geht.



  • Ok, danke das mit den zeiger ist eine tolle idee

    Ist es nicht! Eine tolle Idee wäre, wenn du deinen Klassen entsprechende Methoden spendieren würdest. Und dafür soltest du den Grundlagen-Tipp von MFK beherzigen. 😉



  • Beim obengenannten Codebeispiel ist mir die Bedeutung der zweiten geschweiften Klammer völlig unklar. Sie steht vor einer If-Abfrage und schließt nach dem Anweisungsteil ( wenn bedingung == true).
    Versteht mich bitte nicht falsch, bin ja mit Programmiererfahrung nicht gerade reichlich gesegnet, aber ist das sysntaktisch wirklich korrekt?
    Ciao arni



  • Hallo da bin ich wieder,

    ich bin wahrscheilich doch zu blöd für dieses C++
    jetzt bekomme ich noch nicht mal eine ordentliche abfrage zustande.....

    Ich habe einen Zeiger der sich auf die erste Klasse bezieht erstellt,
    wenn aber der vergleich mit den Variablen ansteht, tut er keinen muks und gibt immer den letzten zugeordneten wert aus.
    Ich habe das mit einer If-Anweisung probiert, hier einmal mein code :

    CBitmapDlg *pWnd = (CBitmapDlg*)GetParent();
    
    	if (pWnd-> m_iv1  )
    	{
    	m_strName ="Verbraucher 1";
    
    		if (pWnd ->m_iv2)
    			m_strName ="Verbraucher 2";
    
    	}
    

    Er zeigt null fehler an, aber bei der ausgabe gibt es nur den Verbraucher 2 sonst keinen.
    Ich habe deshalb kein else eingebaut da noch weiter if- anwiesung mit anderen Verbrauchern als Ausgabe folgen sollen.



  • Sieht so aus, als wäre die Variable m_iv2 immer auf true, vielleicht aktualisierst Du sie nicht richtig, wenn sich irgendwo was updated.

    @arni:

    Du kannst in einem Programm jederzeit einen neuen Block aufmachen. Damit öffnest Du dann einen neuen Gültigkeitsbereich. Das ist zum Beispiel sinnvoll, wenn Du nicht willst, daß ein bestimmtes Objekt die ganze Funktion über verfügbar ist.

    void function()
    {
      { 
        lock myLock(Resource);
        // tu was mit der Resource
      }
      // hier wird zwar auch noch gearbeitet, aber die Resource wird nicht mehr
      // benötig, also sollte sie auch nicht mehr gesperrt sein
    
    }
    


  • Hallo,

    das problem hat sich erledigt...
    ich habe statt der if-anweisung einfach :

    m_dparadlg.m_strName = "Verbraucher 2";
    m_dparadlg.DoModal ();
    

    als aktion wenn ich auf den button drücke gesagt. 🙂



  • CBitmapDlg *pWnd = (CBitmapDlg*)GetParent(); 
    
        if (pWnd-> m_iv1  ) 
        { 
        m_strName ="Verbraucher 1"; 
    
            if (pWnd ->m_iv2) 
                m_strName ="Verbraucher 2"; 
    
        }
    

    Bitte nimm das mit den Einrückungen etwas genauer und mach am besten nach jedem If nen Klammerblock:

    CBitmapDlg *pWnd = (CBitmapDlg*)GetParent(); 
    
    if (pWnd-> m_iv1  ) 
    { 
        m_strName ="Verbraucher 1"; 
    
        if (pWnd ->m_iv2) 
        {
              m_strName ="Verbraucher 2"; 
        }
    }
    

    Hier siehst Du nämlich, dass Du m_iv2 nur prüfst, wenn m_iv1 schon wahr war und Du schon Verbraucher 1 gesetzt hast. Das ganze Konstrukt erscheint mir nicht logisch.


Anmelden zum Antworten