🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: de.comp.lang.c++
1 messages
1 total messages Started by Dino Simonits Fri, 22 Dec 1995 08:15
BC++4.5 Container !
#1087
Author: Dino Simonits
Date: Fri, 22 Dec 1995 08:15
74 lines
2431 bytes
Hallo!!  Wer hilft mir ??

In einem Windows-Programm, das ich mit Borland C++ Version 4.5 ent-
wickele, taucht ein Laufzeitfehler auf, den ich nicht beheben kann.
Ich hoffe, hier gibt es jemand mit dem scharzen Guertel in Container-
Klassen-Programmierung, der mir helfen kann! 

Die unten deklarierten Strukturen sollen Messdaten aufnehmen, von denen
weder die Anzahl der Punkte einer Messkurve noch die der Kurven selbst
vorher bekannt sind. Hierzu werden zwei verschachtelte Container von 
Borland genutzt: 


class TKurve {   // zum Speichern einer Kurve
 public:
	TKurve():Punkt(10,0,10){};
	TArrayAsVector<WORD> Punkt;
	int operator ==(const TKurve &eintrag) const
	// nur formaler Vergleichsoperator
		{
			 return 0;
		};
};


class TDaten {		// zum Speichern aller Kurven
 public:
	TDaten():Kurve(200,0,200){};
	TArrayAsVector<TKurve> Kurve;
	// weitere Daten einfacher Datentypen
	// ...
};



Als Member der zentralen Fensterklasse sind u.a. folgende
Objekte deklariert:

  TDaten daten;
  TKurve kurve;


Im Konstruktor der zentralen Fensterklasse wird der Container 
des Objekts kurve mit 10 Elementen gefuellt: 

  Daten.Kurve.Flush();
  for (int t=0;t<10;t++) kurve.Punkt.Add((WORD)t);


Der Container des Daten-Objekts wird nun im Verlauf des Programms 
mehrmals um jeweils 100 Kurven erweitert.

  for (int z=0;z<100;z++)		 // Fuege 100 Kurven hinzu
	Daten.Kurve.Add(kurve);


Diese Operation fuehrt nach ungefaehr 1200 Kurven im Container zu einem
Programmabbruch, die Entwicklungsumgebung von Borland meldet eine
unbehandelte Exception.


Wie kommt es zu diesem Abbruch, der offensichtlich (nach meinen Tests)
unabhaengig von der Anzahl der gespeicherten Punkte (hier 10) ist?
Von welchem Typ ist die hierbei auftretende Exception, 
und wie kann man sie abfangen oder vermeiden?



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Dino Simonits
simonits@wrcs3.uni-wuppertal.de
tel 0221/676-2247
fax 0221/676-2007
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads