000
07.12.2003, 22:04 Uhr
~yeus
Gast
|
also: hier ist ein Modell des Fehlers, der in meinem richtigen prgramm auftaucht, aber es ist exakt das gleiche Problem, hier erstmal der Programmcode(am besten ihr versteht was von der STL library, um mir zu helfen):
C++: |
#include <iostream.h> #include <vector> using namespace std;
class TEST { public: TEST() { a=1; b=2; c=3; };
TEST(int Eingabe) { a=1; b=2; c=Eingabe; };
~TEST(){};
int a,b,c;
void show() { printf("\n\n\n\n%i, %i, %i\n\n\n", a,b,c); if(!child.empty()) child[0].show(); };
vector<TEST> child; };
int main() { TEST test1, test2(22), test3(33);
cout<<"here begins the vector STL library test area!"<<endl;
test1.child.push_back(test2); test2.child.push_back(test3);
test1.show(); //test2.show();
return 0; }
|
also mein Problem: wenn man sich die show()-funktion ansieht, sieht man, daß sie eigentlich rekursiv gedacht ist. in der Ausgabe von dem Programm geht die rekursion aber nur bis zum 1. child--objekt. dann ist schluß, egal wieviele childobjekte ich noch hinzufüge, es geht immer nur um ersten childobjekt aber wenn man im Hauptprogramm test4.show() die kommentarstriche wegmacht, sieht man, daß in test4.shot TROTZDEM noch test gespeichert ist. also.. kann mir hier irgenwer helfen? (ich hab auch schon probiert anstatt einer rekursiven funktion mal einfach die childobjekts direkt abzurufen, es funktioniert aber komischerweise genausowenig:
C++: |
void show() { printf("%i, %i, %i\n\n\n", a,b,c); printf("%i, %i, %i\n\n\n", child.front().a,child.front().b,child.front().c); printf("%i, %i, %i\n\n\n", child.front().child.front().a, child.front().child.front().b, child.front().child.front().c); }
|
Bearbeitung von Pablo: |
[ cpp ] tag gesetzt. CPP Tags selber bentzen, danke!
|
Dieser Post wurde am 07.12.2003 um 22:12 Uhr von Pablo Yanez Trujillo editiert. |