001
06.05.2005, 07:49 Uhr
doppler
|
Zunächst mal funktioniert das Einlesen so nicht. Wenn du meine_matrix->eingabe() aufrufst, wird zwar der vector<double> mat erzeugt, und es werden die 9 Zahlen eingelesen, aber sobald die Funktion eingabe() abgehandelt ist, wird dieser vector wieder destruiert und die 9 Zahlen sind vergessen.
Um auf den vector<double> zugreifen zu können, muss matrix einen solchen als Daten-member haben. Versuch mal so (ungetestet):
C++: |
class matrix{ public: std::vector<double> mat; matrix() : mat() { eingabe(); }; void eingabe(void){ double wert; cout << "eingabe von 9 zahlen!" << endl; while ((mat.size()!=9)&& cin >> wert) mat.push_back(wert); } };
|
Wenn du jetzt den default-Konstruktor aufrufst, wird zuerst mat mit seinem default-Konstruktor erzeugt (wegen :mat()) und dann die Funktion eingabe aufgerufen. Auf mat kannst du dann mit meine_matrix->mat zugreifen.
Achtung: beim zweiten Aufruf von eingabe() wird nurnoch "eingabe von 9 zahlen!" hingeschrieben, aber nichts mehr eingelesen, weil mat schon die Länge 9 hat. Dieser Post wurde am 06.05.2005 um 07:56 Uhr von doppler editiert. |