Erzeugte Klasse unbekannt

Hallo,
ich hab eine eigene Klasse Einheit definiert und per Zeiger dann einige Objekte definiert:
if(m_akltrans > 0)
{
Einheit *angreifer_kltrans;
angreifer_kltrans = new Einheit[m_akltrans];
for(x=1;x

Hallo Mavcraft

if(m_akltrans > 0) {
Einheit *angreifer_kltrans;
angreifer_kltrans = new Einheit[m_akltrans];

Abgesehen davon, dass diese Schleife

for(x=1; x

Okay, das ist meine Klasse:

class Einheit
{
public:
void SetFlag(bool flag);
void SetHuelle(int huelle);
void LadeSchild(int schild);
void SetAngriff(int angriff);
int GetAngriff();
int GetHuelle();
int GetSchild();
bool GetFlag();

private:
int itsHuelle;
int itsSchild;
int itsAngriff;
bool itsFlag;
};

Dann folgt in meiner Funktion:

if(m_akltrans > 0)
{
Einheit *angreifer_kltrans;
angreifer_kltrans = new Einheit[m_akltrans];
for(x=1;x 0)
{
for(x=1;x

Hallo,

Okay, das ist meine Klasse:

Dann folgt in meiner Funktion:

if(m_akltrans > 0){
Einheit \ *angreifer_kltrans ;
angreifer_kltrans = new Einheit[m_akltrans];

}
if(m_akltrans > 0) {
for(x=1;xangreifer_kltrans[x-1].LadeSchild(KLTRANS_SCHILD);
}

dann kennt er auf einmal angreifer_kltrans nicht mehr.

Ja logisch :wink:

 if (BLOCK\_1) {
 int variable = 1; // Im obigen Beispiel ist 'variable' Block-lokal, 
d.h. nach Verlassen des Blocks wird sie zerstört 
und ist nicht mehr sichtbar.

Grüße

CMБ

Ist es schlimm, wenn m_akltrans 0 ist?
Wenn den Compiler sowas wie new int[0] nicht stört, dann kann ich den if-Block ja weglassen und dann klappt es auch.

Gruß
Mavcraft

du brauchst die variable bloss vor dem ersten if zu deklarieren, dann ist sie in jedem if sichtbar. Noch was: du brauchst einen Zeiger vom Typ Einheit, damit " = new Einheit" auc Sinn macht, also:

Einheit \*pe = new Einheit;

Martin

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

du brauchst die variable bloss vor dem ersten if zu
deklarieren, dann ist sie in jedem if sichtbar. Noch was: du
brauchst einen Zeiger vom Typ Einheit, damit " = new Einheit"
auc Sinn macht, also:

Einheit *pe = new Einheit;

Martin

Das habe ich auch gemacht. Wenn ich dann
Einheit *pe = new Einheit[0]
schreiben kann, dann ist ja gut. Dann lasse ich if einfach weg.

Danke für eure Hilfe!
Gruß
Mavcraft