🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: de.comp.lang.c++
Article #1087

BC++4.5 Container !

#1087
From: 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
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Technical Details
Message-ID: <4bdpec$euj@wmwap1.math.Uni-Wuppertal.DE>
Path: arc1-ca.pugleaf.net!wmwap1.math.uni-wuppertal.de!simonits

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!wmwap1.math.uni-wuppertal.de!simonits
From: simonits@wrcs1.urz.uni-wuppertal.DE (Dino Simonits)
Newsgroups: de.comp.lang.c++
Subject: BC++4.5 Container !
Date: 22 Dec 1995 08:15:08 GMT
Organization: University of Wuppertal
Message-ID: <4bdpec$euj@wmwap1.math.Uni-Wuppertal.DE>
NNTP-Posting-Host: wrcs3.urz.uni-wuppertal.de
X-Newsreader: TIN [version 1.2 PL2]