Übergabe "this" in neuen Funktionsaufruf

Mevanderpington

Grünschnabel
Hallo alle zusammen,

Ich bin mittlerweile am verzweifeln!
Ich arbeite an einem c++ Programm, das eine Art Kampf von verschiedenen Kämpfern (Raumschiffen) darstellen soll.
Vorgabe ist, dass in der Main auf einem Kämpfer A die funktion "angreifen" aufgerufen wird, welche dann beim angegriffenen B die Funktionen "verteidigen" aufruft, woraufhin B -> A angreift und dann wieder A-> B angreift usw.

Es soll also ein Rundenbasierts Kampfsystem sein. nun zu meiner Idee:

Code:
void Raumschiff::angreifen(Raumschiff & enemie){
    int Ap = this->getGesamtSchlagkraft();
    //enemie.verteidigen(this, Ap);
}

void Raumschiff::verteidigen(Raumschiff & enemie, int Ap)
{
    if(this->getLebenspunkte()<= 0){
        cout << "Schiff kaputt" << this->name << endl;
    }
    else{
    int lp = this->getLebenspunkte();
    lp -= Ap;
    this->setLebenspunkte(lp);
    this->angreifen(enemie);
    }


}

lp sind die Lebenspunkte, die ein Kämpfer zu Verfügung hat , Ap die Attack power eines schiffes.

Das Problem an dem ich verzweifle ist, bei "enemie.verteidigen(this, Ap);"
was muss da wo "this" steht hin, damit ich der funktion eine Referenz des Objektes mitgeben kann, auf der "angreifen" gerade ausgeführt wurde?

mfg
 
Hi und Willkommen bei tutorials.de,

*this statt this (da this eine pointermäßige Adresse ist)
enemy schreibt man übrigens mit y :)
 
Zurück