012
09.08.2005, 18:09 Uhr
~GiantGeorge
Gast
|
also irgendwie komm ich doch noch überhaupt nicht klar das zweidimensionale Array meine ich relativ gut implementiert zu haben. Ok, ich hab jetzt auch versucht einen Konstruktor zu verwenden, aber ohne eine zusätzliche init-Funktion komm ich irgendwie nicht aus.
[
C++: |
#include <iostream>
using namespace std;
int n, NumberBlocks;
class Block{ public: double **AW; double **AE; double **AN; double **AS; //usw. Block(int size){ AW = init(AW, size, size); AE = init(AE, size, size); AN = init(AN, size, size); AS = init(AS, size, size); } double** init(double**, int, int); void change(); };
double** Block::init(double **x, int Rows, int Cols){ int i; x = new double*[Rows]; for (i=0; i<Rows;i++){ x[i]=new double[Cols]; } return x; } void Block::change(){ int i, j; for (i = 0; i < n; i++){ for (j = 0; j < n; j++){ AW[i][j]=2; } } }
int main(int argc, char *argv[]){ if (argc < 3) { cerr << "Geben Sie der Funktion einen Parameter, der die Anzahl der Iterationen angibt, mit."; } else { printf("else anweisung"); n = atoi (argv[1]); NumberBlocks = atoi (argv[2]); } Block BigBlock[NumberBlocks]; BigBlock[2]= new Block(n); BigBlock[2].change(); }
|
Der Compiler spuckt folgendes aus: Klassen.cpp: In function `int main(int, char**)': Klassen.cpp:67: error: no matching function for call to `Block::Block()' Klassen.cpp:8: error: candidates are: Block::Block(const Block& Klassen.cpp:15: error: Block::Block(int) Klassen.cpp:68: error: invalid conversion from `Block*' to `int' Klassen.cpp:68: error: initializing argument 1 of `Block::Block(int)'
Also wenn mir da einer weiterhelfen könnte, ich wäre endlos dankbar !!!
Dann hätte ich noch ein paar grundsätzliche Fragen: Kann ich überhaupt ein Array von denselben Objekten, die allerdings verschiedener Größe sind, einrichten? In meinem Fall wären dann die Blöcke verschieden groß, wobei alle Blöcke im Array BigBlock liegen. Und was ist eigentlich der Unterschied zwischen *double; und double[];
Schon mal herzlichsten Dank für eure Hilfe !
Gruß, GiantGeorge |