Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

SilentDragon

Alter Hase

  • »SilentDragon« ist der Autor dieses Themas

Beiträge: 530

Wohnort: Köln

Beruf: Student

  • Private Nachricht senden

1

30.04.2007, 22:15

in void Funktion auf Klasse zugreifen

hi,

ich habe in meinem kleinem Konsolen-Spiel in einer void Funktionen eine Klasse erstellt und wollte wissen wie ich in einer anderen Funtkion auf die daten der erzeugten Klasse zugreifen kann...
naja hier ein Code ausschnitt, damit ihr sieht was ich meine:

C-/C++-Quelltext

1
2
3
4
5
6
void Gegnererstellen ()
{
   CPlayer Gegner;
   Gegner.Breite = rand%
...
}

in dieser Funktion habe ich die Klasse erstellt

C-/C++-Quelltext

1
2
3
4
5
6
7
void Trefferprüfen ()
{
...
    if(Breite == Gegner.Breite &&
       Höhe == Gegner.Hoehe)
...
}

und hier gibt's die großen probleme....

geht das überhaupt mit void Funtkionen oder muss ich da was anderes für anwenden?

P.S: ich habe mir das Buch vor nem halben Jahr durchgelesen und seit dem nicht mehr oder fast gar nichts in C++ geproggt.
...

rewb0rn

Supermoderator

Beiträge: 2 773

Wohnort: Berlin

Beruf: Indie Game Dev

  • Private Nachricht senden

2

30.04.2007, 22:24

Das geht so direkt nicht.
Zuerstmal erstellst du ein Objekt oder eine Instanz deiner Klasse, nicht die Klasse selbst ;)
Du erstellst deine Variable innerhalb einer Funktion, sie ist damit lokal und damit nicht den anderen Funktionen bekannt. Du müsstest entweder der Funktion Trefferprüfen noch einen Parameter hinzufügen um deine Klasse zu übergeben:

C-/C++-Quelltext

1
void Trefferprüfen (CPlayer* Gegner)


oder du erstellst den Gegner als globale Variable, also das CPlayer Gegner; einfach direkt unter die includes, das ist zwar einfach, aber unschöner Stil und kann schnell eine schlecht zu findende Fehlerquelle werden, also besser erst gar nicht damit anfangen.

Sheddex

unregistriert

3

30.04.2007, 22:41

Re: in void Funktion auf Klasse zugreifen

Oder du erstellst eine Klasse die "Gegnererstellen" und "Trefferprüfen" als Methoden und "Gegner" als Membervariable hat.

Werbeanzeige