ERLEDIGT
NEIN
NEIN
ANTWORTEN
8
8
ZUGRIFFE
552
552
EMPFEHLEN
-
25.05.05 13:41 #1
- Registriert seit
- Oct 2004
- Beiträge
- 14
Hi !
Ich möchte mir in einer Klasse Sparse einen Konstruktor erstellen, welcher ein array von double Elementen speichert.
Ich habe mir eine Klasse sparse erstellt.
In sparse.h steht folgendes:
In sparse.cc folgendes:Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14
#ifndef SPARSE_H #define SPARSE_H #include <iostream> using namespace std; class Sparse { public: Sparse( const unsigned int z ); private: void initSparse(); double * val_Sparse; unsigned int m_Z; }; #endif
Nun denke ich, dass mir initSparse einen Array von double Elementen reserviert.Code :1 2 3 4 5 6 7 8 9 10 11 12
#include "sparse.h" Sparse::Sparse( const unsigned int z) { m_Z = z; // steht für die Anzahl der Elemente initSparse(); } void Sparse::initSparse() { val_Sparse = new double[m_Z]; for( unsigned int i = 0; i < m_Z; i++ ) { val_Sparse[i] = new double; // Hier ist bei mir Zeile 29. } }
Aber beim Kompilieren (g++ Kompiler) gibt es den Fehler:
"sparse.cc:29: error: cannot convert `double*' to `double' in assignment"
Ich verstehe das nicht warum er da mir meckert.
Weiss einer vielleicht was das Problem ist, wo ich den Denkfehler habe?
Für Hinweise wäre ich sehr dankbar, denn ich komme da nicht weiter
Geändert von cibal_gina (25.05.05 um 16:16 Uhr)
-
Warum 2mal new? Das erste mal ( new double[m_Z] ) reicht aus.
Zitat von cibal_gina
-
25.05.05 16:00 #3
- Registriert seit
- Oct 2004
- Beiträge
- 14
Habs gerade ausprobiert. Und bekomme nachdem ich dort in Zeile 29 das new weggenommen habe folgende Fehlermeldung mit der ich auch nichts anfangen kann, weil alle semikolons und Klammern richtig gesetzt sind:
sparse.cc:29: error: expected primary-expression before "double"
sparse.cc:29: error: expected `;' before "double"
-
ich meinte das Rot markierte new (in der Schleife)
Zitat von cibal_gina
-
25.05.05 16:16 #5
- Registriert seit
- Oct 2004
- Beiträge
- 14
Ja, habe mich nur oben im Quellcode vertippt (Zeile 29 ist das von Dir rot markierte), ich hatte schon das richtige rausgenommen.
(Habe es gerade oben korrigiert)
-
wenn du das andere new und die Schleife weggenommen hast, müsste das so aussehen:
Code :1 2 3 4
void Sparse::initSparse() { val_Sparse = new double[m_Z]; }
Dann hat sich Zeile 29 verschoben, wo ist sie dann?
-
25.05.05 16:27 #7
- Registriert seit
- Oct 2004
- Beiträge
- 14
Momentan sieht es so aus:
mit diesem Fehler:Code :1 2 3 4 5 6
void Sparse::initSparse() { val_Sparse = new double[m_Z]; for( unsigned int i = 0; i < m_Z; i++ ) { val_Sparse[i] = double; // Hier ist bei mir Zeile 29. } }
sparse.cc:29: error: expected primary-expression before "double"
sparse.cc:29: error: expected `;' before "double"
-
Code :
1 2 3
for( unsigned int i = 0; i < m_Z; i++ ) { val_Sparse[i] = double; // Hier ist bei mir Zeile 29. }
Das kannst du komplett entfernen, dass es so aussieht wie in meinem vorherigen Post.
Oder anstelle von double 0 (NULL) schreiben, damit jedes Element auf 0 gesetzt wird.
-
25.05.05 16:43 #9
- Registriert seit
- Oct 2004
- Beiträge
- 14
Ah
Alles klar.
So funktioniert es
Vielen Dank für Deine Hilfe
Ähnliche Themen
-
Konstruktor mit Übergabe eines Wertes
Von voelzi im Forum C/C++Antworten: 1Letzter Beitrag: 21.11.09, 21:05 -
Filterung eines Arrays
Von Paula im Forum PHPAntworten: 4Letzter Beitrag: 19.04.06, 13:38 -
größe eines arrays
Von Pherseus im Forum C/C++Antworten: 4Letzter Beitrag: 13.12.05, 10:00 -
größe eines arrays
Von shrewm im Forum C/C++Antworten: 2Letzter Beitrag: 26.11.04, 15:50 -
[C++] vergrößerung eines arrays
Von Tobias K. im Forum C/C++Antworten: 9Letzter Beitrag: 19.11.03, 10:35





Zitieren
Login






