Funktion ist defekt



  • hallo,

    ich habe folgenden Code:

    void choose_draw(char draw1, char draw2, bool bg, char z1, char z2) //"Spielfigur" Auswahl
    {
    	if(bg == true)
    	{
    		draw1 = z1;
    		draw2 = z2;
    	} else {
    		draw1 = z2;
    		draw2 = z1;
    	}
    }
    
    char draw_i = '.'; //......
    	char draw_g = '.'; //......
    	char z1 = 'X';
    	char z2 = 'O';
    
    	choose_draw(draw_i, draw_g, begin, z1, z2);
    	std::cout<<draw_i<<draw_g;
    

    Da kommt immer nur "." raus, obwohl ich schon in der Funktion alles gemacht habe.
    Warum funktioniert das nicht so, wie ich es will?
    Ich wil unbedingt eine Funktion verwenden 😉

    cu bis gleich XD
    Martin



  • Hi,

    verwende Pointer oder Referenzen, denn die Werte verlieren außerhalb der Funktion wieder ihre Gültigkeit...

    Also schreib:

    void choose_draw(char& draw1, char& draw2, bool bg, char& z1, char& z2)
    {
        if(bg == true)
        {
            draw1 = z1;
            draw2 = z2;
        } else {
            draw1 = z2;
            draw2 = z1;
        }
    }
    

    Hoffe es hilft dir. Falls noch Fragen sind nachfragen oder Google bemühen. Stichworte: Referenzen, Pointer, C++

    Gruß Patrick


Anmelden zum Antworten