JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=81858a10d4d709a8a47b717fced60822Medaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Problem mit Konstruktor

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
HotAcid
Super JLI'ler


Alter: 43
Anmeldedatum: 04.08.2002
Beiträge: 372
Wohnort: Berlin
Medaillen: Keine

BeitragVerfasst am: 28.02.2004, 12:45    Titel: Problem mit Konstruktor Antworten mit Zitat

Hallo,

habe ein "kleines" Problem mit meinem Konstruktor: und zwar werden die Werte, die ich hier meinen Variablen zuweise, nicht übernommen...



Code:

class Layer
{
  double d;
  //...
};

Layer::Layer(int neurons, int pre, double(*f)(double), double(*derivativeF)(double))
{
  d = 14;
  // ...
}

// Standardkonstruktor
Layer::Layer()
{
  d = 5;
}
const MathVector& Layer::calculateOutput(const MathVector& input)
{
  cout << "d = " << d << endl;
  // ...
}

Als Ausgabe kommen ziemlich seltsame Werte wie z.B. d = 5.09279e-313, also wurde die Variable scheinbar nicht richtig initialisiert. Hat jemand ne Idee, woran das liegen könnte? Braucht ihr evtl den kompletten Konstruktor? Mit der Variable d mache ich sonst nichts mehr, die habe ich hier nur als Test eingebaut.

dankeschön!!!
Felix
_________________
StGB §§ 328 Abs. 2 Pkt 3:
Mit Freiheitsstrafe bis zu fünf Jahren oder mit Geldstrafe wird bestraft, wer eine nukleare Explosion verursacht.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
HotAcid
Super JLI'ler


Alter: 43
Anmeldedatum: 04.08.2002
Beiträge: 372
Wohnort: Berlin
Medaillen: Keine

BeitragVerfasst am: 28.02.2004, 15:30    Titel: Antworten mit Zitat

Mit dem Konstruktor hats nichts zu tun, das weiß ich inzwischen. der Fehler liegt genau hier:

Code:
   MLPArr = new MLP[num_mlp];

   for(int i=0; i<num_mlp; i++)
   {
      MLPArr[i] = MLP(eps, layer[i], neurons[i]);
      cout << "MLPArr[" << i << "] = " << MLPArr[i].getThreshold(1) << endl;
   }
   cout << "MLPArr[1] = " << MLPArr[1].getThreshold(1) << endl;


Dieses erzeugt folgende Ausgabe:
Code:
MLPArr[0] = < 0.0994801 -0.0540728 -0.0110919 >
MLPArr[1] = < -0.0476603 -0.0435009 -0.00381282 >
MLPArr[2] = < -0.0663778 -0.0868284 -0.0362218 >
MLPArr[1] = < 0 5.03675e-270 10.1143 10.1144 10.1144 10.1145 10.1145 10.1146 10.1147 10.1147 10.1148 10.1148 10.1149 10.115 10.115 10.1151 10.1151 >

In der Schleife ist noch alles ok, au'ßerhalb der Schleife nicht mehr. hat jemand Ideen?

dankeschön!
Felix
_________________
StGB §§ 328 Abs. 2 Pkt 3:
Mit Freiheitsstrafe bis zu fünf Jahren oder mit Geldstrafe wird bestraft, wer eine nukleare Explosion verursacht.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
The Lord of Programming
Living Legend


Alter: 37
Anmeldedatum: 14.03.2003
Beiträge: 3122

Medaillen: Keine

BeitragVerfasst am: 28.02.2004, 21:26    Titel: Antworten mit Zitat

Wo steht denn der Code, den du gepostet hast?
Und welche Schleife meinst du?

Ich könnte mir vorstellen, dass du irgendwie auf den falschen Speicher zugreifst
_________________
www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console


Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
HotAcid
Super JLI'ler


Alter: 43
Anmeldedatum: 04.08.2002
Beiträge: 372
Wohnort: Berlin
Medaillen: Keine

BeitragVerfasst am: 28.02.2004, 21:59    Titel: Antworten mit Zitat

der Fehler liegt vermutlich an einer ganz anderen Stelle, aus - mir noch etwas unerklärlichen Gründen - wird das Obejkt viel zu früh wieder zerstört, so dass auf jeden Fall auf falschen Speicher zugegriffen wird. Habe schon ein paar Tipps bekommen,w erde das alles morgen mal in Ruhe austesten und mich dann evtl. nochmal melden

cu Felix
_________________
StGB §§ 328 Abs. 2 Pkt 3:
Mit Freiheitsstrafe bis zu fünf Jahren oder mit Geldstrafe wird bestraft, wer eine nukleare Explosion verursacht.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
HotAcid
Super JLI'ler


Alter: 43
Anmeldedatum: 04.08.2002
Beiträge: 372
Wohnort: Berlin
Medaillen: Keine

BeitragVerfasst am: 29.02.2004, 10:53    Titel: Antworten mit Zitat

Alles klar, Problem gelöst. Es lag daran, dass ich an einer Stelle eine flache Kopie erzeugt habe, die am Ende des Schleifenrumpfes zerstört wurde. Anschließend gibt es logischerweise Probleme beim Zugriff...

cu Felix
_________________
StGB §§ 328 Abs. 2 Pkt 3:
Mit Freiheitsstrafe bis zu fünf Jahren oder mit Geldstrafe wird bestraft, wer eine nukleare Explosion verursacht.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung Alle Zeiten sind GMT
Seite 1 von 1

 
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