feldindexprüfung / kopierkonstr. überladen!?
-
hallo,
ich mal wieder..
also ich soll eine feldklasse entwickeln, die eine feldindexprüfung durchführt, feldelemente sollen double sein. die grösse des feldes dim wird über den konstruktor festgelegt. der konstruktor soll den notwendigen speicherplatz dynamisch allokieren.
auf die feldelemente wird über die methodedouble getElement(int i);
zugegriffen mit dem feldindexwert i, elementwerde werden mit
void setElement(double elem, int i);
gesetzt.
der gültige bereich von i geht von 0 bis dim-1. getElement() und setElement() prüfen, ob ein gültiger indexwert vorliegt und melden einen fehler, falls dies nich der fall is!
okay, bis hier hin habs ich mal so ..#include <iostream> #include <string.h> using namespace std; class check { private: double * dim; int i; public: check(); ~check() { delete[] dim; } double getElement(int i); void setElement(double elem, int i); }; check::check() { // Konstruktor dim = new double[5]; } double check::getElement(int i) { if (i <= 4) { return dim[i]; } else { return false; } } void check::setElement(double elem, int i) { if (i <= 4) { dim[i] = elem; } else { cout << "Kein gueltiger Indexwert" << endl; } } int main() { check i1; i1.setElement(234.242, 0); i1.setElement(93.123, 1); i1.setElement(2123.32, 6); cout << i1.getElement(0) << endl; cout << i1.getElement(1) << endl; }
das funktioniert eigentlich auch so, wie ich es in der aufgabe verstehe !
jetzt die 2. aufgabe:
der kopierkonstruktor(ich hab gar keinen drin) soll überladen werden damit deklarationen mit zuweisungsinitialisierungen sowie übergabe per wert eines objekts der feldklasse an eine funktion, sowie rückgabe per wert möglich ist! ... *nullplan*
jemand ne idee, was damit gemeint is? und event. lösungsvorschläge .. ich danke euch :p
-
check(const check ©);
wenn ich mich nicht irre
was damit gemeint is?
deklarationen mit zuweisungsinitialisierungen
hmmm vieleicht sowas
check chk=check();
sowie übergabe per wert eines objekts der feldklasse an eine funktion, sowie rückgabe per wert
check func(check chk) { //ne kopie geht rein und ne kopie geht raus }
-
ohne Gewähr/Compile:
check::check(const check & source){ //CopyKonstruktor i = source.i; dim = new double[i]; for(int row=0; row<i ;row++){ dim[i] = source.dim[i]; } }
zu gebrauchen in etwa so:
check c2(c1);