JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.phpMedaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Problem mit einem Array
Gehe zu Seite 1, 2  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Fragen, Antworten und Kritik
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Mat
Senior JLI'ler


Alter: 36
Anmeldedatum: 17.09.2005
Beiträge: 205
Wohnort: Koblenz
Medaillen: Keine

BeitragVerfasst am: 22.12.2005, 10:21    Titel: Problem mit einem Array Antworten mit Zitat

Dürfte mir zwar eigendlich nicht passieren, aber ich komm nicht ganz darauf, wesshalb die Implementation des Arrays im Konstruktor gültig ist.
CPP:
class CGameplay
{
   public:
      
      bool opm_activeFigures[NUMBER_FIGURES];

      short int opm_NumActivFigures;

      CGameplay(void);

...
    
   protected:

...

};

CGameplay::CGameplay(void)
{
   m_NumOccupiedLines = 0;
   m_NumPreviews = 1;

   opm_activeFigures =
     {
         1,1,1,1,1,1,1,
         0,0,0,0,0,0,0,
         0,0,0,0,0,0,0,
         0,0,0,0,0,0,0,
         0,0,0,0,0,0,0
      };
}


Der Compiler gibt einen Fehler mit den Klammern an .. hmm ...

Danke für Hilfe, und verspottet mich nicht^^ Wink
_________________
- - - - - - - - - - - - - - - - - - - -
-> http://www.sea-productions.de
-> http://www.krawall.de
- - - - - - - - - - - - - - - - - - - -
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Maxim
Senior JLI'ler



Anmeldedatum: 28.03.2004
Beiträge: 249

Medaillen: Keine

BeitragVerfasst am: 22.12.2005, 10:34    Titel: Antworten mit Zitat

Die Fehlermeldung hinschreiben - wäre auch nicht schlecht.
In welcher Zeile genau wird der Fehler gemeldet?

wenn hier
Code:
bool opm_activeFigures[NUMBER_FIGURES];


dann könnte ich mir vorstellen, dass NUMBER_FIGURES eine Variable ist
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Patrick
Dark JLI Master



Anmeldedatum: 25.10.2004
Beiträge: 1895
Wohnort: Düren
Medaillen: Keine

BeitragVerfasst am: 22.12.2005, 10:34    Titel: Antworten mit Zitat

Wäh sind ja schlimm aus Very Happy

CPP:
class gameplay // Wofür C davor? Magste MFC?
{
public:
    gameplay (void);
       // Wo sind destruktor und copyconstructor???
   
private: // use private!       
    // Ungarische Notation? igitt!
    bool          activeFigures_[NUMBER_FIGURES];  // Ich hoffe für dich, das NUMBER_FIGURES kein #define ist.
    unsigned long numActivFigures_;  // Wofür short? Wofür int? Warum kein unsigned?
// Kannst Du auch negative aktive Figuren haben? denke nicht.
};

 // Initialisierungslisten bitte benutzen, zuweisung im Constructor wird nicht gern gesehen
gameplay::gameplay (void) : numActivFigures_(0), numPreviews_(1)
{
    bool activeFigures[NUMBER_FIGURES] =
    {
        1, 1, 1, 1, 1, 1, 1,
        0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0
    };

    ::memcpy (activeFigures_, activeFigures, sizeof(activeFigures));
}


Du kannst ein Array nicht nachträglich mit einer Übergabeliste initalisieren. Initialisierung geht nur direkt bei der Instanzierung.
_________________
'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
fast hawk
Senior JLI'ler



Anmeldedatum: 15.07.2005
Beiträge: 237
Wohnort: Freiburg
Medaillen: Keine

BeitragVerfasst am: 22.12.2005, 12:26    Titel: Antworten mit Zitat

Patrick hat Folgendes geschrieben:


CPP:
    bool          activeFigures_[NUMBER_FIGURES];  // Ich hoffe für dich, das NUMBER_FIGURES kein #define ist.
 



Warum kein #define mit einer Varieblen gibt es doch erst ein fehler??
_________________
Jetziges Projekt: The Ring War
Status: 40%
-----------------------------------
Nicht weil es schwer ist, wagen wir es nicht, sondern weil wir es nicht wagen, ist es schwer.
--
Lucius Annaeus Seneca (4)
röm. Philosoph, Dramatiker und Staatsmann
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
PeaceKiller
JLI Master


Alter: 36
Anmeldedatum: 28.11.2002
Beiträge: 970

Medaillen: Keine

BeitragVerfasst am: 22.12.2005, 12:33    Titel: Antworten mit Zitat

Patrick, wieso verwendest du eigentlich immer long statt int?
_________________
»If the automobile had followed the same development cycle as the computer, a Rolls-Royce would today cost $100, get a million miles per gallon, and explode once a year, killing everyone inside.«
– Robert X. Cringely, InfoWorld magazine
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Patrick
Dark JLI Master



Anmeldedatum: 25.10.2004
Beiträge: 1895
Wohnort: Düren
Medaillen: Keine

BeitragVerfasst am: 22.12.2005, 12:42    Titel: Antworten mit Zitat

fast hawk
CPP:
#define VARIABLE 44

void foobar (int value);
void foobar (unsigned int value);
void foobar (unsigned long int value);
void foobar (float value);
void foobar (double value);
void foobar (char value);
void foobar (unsigned char value);
void foobar (wchar_t value);
void foobar (bool value);
///usw...

int main (void)
{
    foobar (VARIABLE); // Na was wird aufgerufen?

    return 0;
}


Zum Thema variabel: Wofür gibt es const? Spitzen erfindung!
CPP:
const unsigned long wert = 22;
long array[wert]; // geht wunderbar!


PeaceKiller
Guck mal was mit int los ist und was bei den anderen.
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclang/html/_langref_data_type_ranges.asp

Da ich viel mit Binärdateien rumhantiere, int jedoch keine vom Standard festgelegte Mindesttiefe besitzt. kann es bei binärdateien häufig krachen und auf 64 Bitsystemen probleme mit 32 Bitprogrammen geben
_________________
'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Jonathan_Klein
Living Legend


Alter: 37
Anmeldedatum: 17.02.2003
Beiträge: 3433
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 22.12.2005, 13:32    Titel: Antworten mit Zitat

ey, wir müssen uns jetzt net shcon wieder darüber streiten.Das Problem ist dneke ich geklärt, wie gesagt, muss man Initialisierungslisten verwenden (wie auch bei Konstanten in einer Klase) und damit hats sich.
Beispiel für Initialisirungslisten:

CPP:
class Klasse
{
public:
 Klasse();
 int X, Y;
 const int Z;
}

Klasse::Klasse():
X(1),
Y(2),
Z(3)
{
}

_________________
https://jonathank.de/games/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Patrick
Dark JLI Master



Anmeldedatum: 25.10.2004
Beiträge: 1895
Wohnort: Düren
Medaillen: Keine

BeitragVerfasst am: 22.12.2005, 13:51    Titel: Antworten mit Zitat

Jonathan_Klein
Es geht doch nicht um die Initialisierungsliste sondern um das array.
_________________
'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
GreveN
JLI Master


Alter: 38
Anmeldedatum: 08.01.2004
Beiträge: 901
Wohnort: Sachsen - Dresden
Medaillen: Keine

BeitragVerfasst am: 22.12.2005, 14:05    Titel: Antworten mit Zitat

Warum muss eigentlich dauernd jemand in eine friedliche Konversation 'nen Streit hineininterpretieren?

Fand die Diskussion bis jetzt informativ und ohne verbale Ausfälligkeiten.

Very Happy
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Yahoo Messenger MSN Messenger
PeaceKiller
JLI Master


Alter: 36
Anmeldedatum: 28.11.2002
Beiträge: 970

Medaillen: Keine

BeitragVerfasst am: 22.12.2005, 14:36    Titel: Antworten mit Zitat

Patrick hat Folgendes geschrieben:
PeaceKiller
Guck mal was mit int los ist und was bei den anderen.
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclang/html/_langref_data_type_ranges.asp


Gilt das auch für den 64bit-Complier von MS?
_________________
»If the automobile had followed the same development cycle as the computer, a Rolls-Royce would today cost $100, get a million miles per gallon, and explode once a year, killing everyone inside.«
– Robert X. Cringely, InfoWorld magazine
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Christian Rousselle
Site Admin


Alter: 48
Anmeldedatum: 19.07.2002
Beiträge: 1630

Medaillen: Keine

BeitragVerfasst am: 22.12.2005, 14:56    Titel: Antworten mit Zitat

PeaceKiller hat Folgendes geschrieben:
Gilt das auch für den 64bit-Complier von MS?


Sollte für alle MS-Compiler gelten, auch die 16-Bit Compiler (die es noch gibt).

C.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
David
Super JLI'ler


Alter: 40
Anmeldedatum: 13.10.2005
Beiträge: 315

Medaillen: Keine

BeitragVerfasst am: 22.12.2005, 15:04    Titel: Antworten mit Zitat

Hi!

@Jonathan_Klein: Konnte auch keinen Streit entdecken! Wink Was Patrick sagte war alles korrekt und niemand hat ihm widersprochen! Wink

grüße
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
fast hawk
Senior JLI'ler



Anmeldedatum: 15.07.2005
Beiträge: 237
Wohnort: Freiburg
Medaillen: Keine

BeitragVerfasst am: 22.12.2005, 15:51    Titel: Antworten mit Zitat

Patrick
Um den Fehler mit den verschiedenen Typen zu engehen musst man es halt so deklanieren
CPP:
#define VARIABLE  (long)120
#define VARIABLE (short)120
#define VARIABLE (float)120.0f
#define VARIABLE (double)120.0


Aber das mit den Konstanten werde ich mir merken DANKE!! Thumb Up
_________________
Jetziges Projekt: The Ring War
Status: 40%
-----------------------------------
Nicht weil es schwer ist, wagen wir es nicht, sondern weil wir es nicht wagen, ist es schwer.
--
Lucius Annaeus Seneca (4)
röm. Philosoph, Dramatiker und Staatsmann
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Patrick
Dark JLI Master



Anmeldedatum: 25.10.2004
Beiträge: 1895
Wohnort: Düren
Medaillen: Keine

BeitragVerfasst am: 22.12.2005, 15:58    Titel: Antworten mit Zitat

fast hawk
Ein Guter Compiler gibt spätestens da schon Fehler aus wegen einer redefinition. Grottenschlechte Compiler spucken spätestens hier einen Fehler aus:
CPP:
#define VARIABLE (float)120.0f
blubb = reinterpret_cast<float>(VARIABLE);

_________________
'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Mat
Senior JLI'ler


Alter: 36
Anmeldedatum: 17.09.2005
Beiträge: 205
Wohnort: Koblenz
Medaillen: Keine

BeitragVerfasst am: 22.12.2005, 16:23    Titel: Antworten mit Zitat

Wink Supi, jetzt weiß ich woranes lag ..

noch eine Frage @Patrick:
CPP:
::memcpy (activeFigures_, activeFigures, sizeof(activeFigures));


Wofür genau steht das _-Zeichen bei activeFigures_ ?
Dass dieses Element der Klasse zugewiesenwird !?

PS: NUMBER_FIGURES ist eine Konstante, die ich bei Zahlen immer verwende ..
Bei Zeichenketten verwende ich (trotz "Effektiv C++ Programmieren") ganz gerne mal #define.
Das dadurch schwer zu findene Fehler entstehen halte ich für überspitzt, außerdem muss das Programm später weniger linken.
+ Es ist sehr bequem und übersichtlich Very Happy
_________________
- - - - - - - - - - - - - - - - - - - -
-> http://www.sea-productions.de
-> http://www.krawall.de
- - - - - - - - - - - - - - - - - - - -
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Fragen, Antworten und Kritik Alle Zeiten sind GMT
Gehe zu Seite 1, 2  Weiter
Seite 1 von 2

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum