Komisches Problem mit Redefinition.
-
Hi
ich habe eine .h datei für eine Klasse geschrieben:
class Verbindungen { private: double Gewichtung; int Ziel; double Ausgang; double Eingang; public: void set_Gewichtung(double); void set_Ziel(int); void set_Eingang(double); int get_Ziel(); void berechnen(); };Jetz mosert der compiler das die klasse mehrfach definiert wurde.
mit:
redefinition of `class Verbindungen'So, dann klick ich auf: "Prevuis Definition" und Lande bei der
{im oben gezeigten code. Dann klick ich auf redefintion und lande wieder bei der
{in der oben gezeigten headerdatei.
Irgendwie lol
Kann mir einer sagen wo da das problem liegt?MfG
Eldarion
-
haste die datei mehrfach inkludiert? evtl über umweg duch andere headers? und haste keinen include guard benutzt (das dink mit #ifndef)?
-
Ok, es war eine dumme mehrfacheinbindung

Könnte mir einer nochma das mit ifndef erkläörn? ich check das nämlich nicht.
Eldarion
-
ganz einfach:
oben in die Headerdatei :
#ifndef blabla_namemeinerheaderdatei
#define blabla_namemeinerheaderdateiam ende der headerdatei:
#endif
-
Eldarion schrieb:
Ok, es war eine dumme mehrfacheinbindung

Könnte mir einer nochma das mit ifndef erkläörn? ich check das nämlich nicht.
Eldarion
Jo,
ich schreib's aber nicht nochmal ab:
"Präprozessor"
Gruß,
Simon2.
-
Hi
danke, das hab ich jetz gecheckt.
Hab jetz nen weiteres komisches prob:
Folgendender code:
Neuronen_array = new Neuronen[Neuronenanzahl]; Verbindungen_array = new Verbindungen[Neuronenanzahl][Neuronenanzahl];So, beim ersten motzt er nich rum, aber beim zweiten, da kommt immer:
`Neuronenanzahl' cannot appear in a constant-expressionund wenn ich das Verbindungen_array nacher aufrufe, über variablen als indize, komm timmer das:
`double[int]' for array subscriptWas hat das zu bedeuten? ich brauch eure hilfe.
Eldarion
-
Hallo,
Lies dir mal diesen FAQ-Beitrag durch.
Ansonsten gilt hier im Forumneue Frage - neuer Thread
-
Eldarion schrieb:
So, beim ersten motzt er nich rum, aber beim zweiten, da kommt immer:
`Neuronenanzahl' cannot appear in a constant-expressionDas liegt daran, dass es keine mehrdimensionalen Arrays in C++ gibt, auch wenn es so aussieht.
T foo[a][b]ist auch nur ein stinknormales eindimensionales Array, mit a Elementen vom Typ T[b].
T foo[a][b][c]wäre demzufolge ein Array mit a Elementen vom Typ T[b][c]. Und das Problem dabei ist, der Typ muss ein compiletime Ausdruck sein. Das ist nun mal das Wesen von C++.
Eldarion schrieb:
und wenn ich das Verbindungen_array nacher aufrufe, über variablen als indize, komm timmer das:
`double[int]' for array subscriptPoste mal den konkreten Code.
-
Der konkrete code ist das hier:
int Abgangsneuron; for (i = 0; i < Neuronen_aufbau_array[0]; i = i + 1)//verbindungen die vom EL ausgehen, eintragen { Abgangsneuron = i; for(k = 0; k<Neuronen_aufbau_array[1]; k = k + 1) { Verbindungen_aufbau[Abgangsneuron][k+Neuronen_aufbau_array[0]] = S_Gewichtung; } }Das prob tritt in der schleife auf.
MfG
EldarionP.S: Evtl sollten wir das in dem thread weitermadchen, wos um das mehrdimensionale array geht, da hab ich mein prob auch nochma genauer geschildert, evtl kann ein mod das ja verschieben.
