Så vidt jeg lige kan se kan du ikke. Der er to operatorer i gang, [] og = De to kan ikke "se" hinanden. Men det burde virke alligevel. Hvorfor vil du have op1 fra [] ?
int& array::operator[](int op2) { ... return (this->classArray[op2]) } --- sådan har jeg løset problemet nu. men hvis det skulle være muligt, så ville jeg gerne have en class-function, som løser opgaven: --- class array { int *classArray; ... }
Hvorfor ikke bare bruge: test xyz; xyz.setValues(5, 8); Det har også den side-gevinst at det ikke er forvirrende...
Forresten, grunden til at det ikke vil virke uden nogle tricks, er at [] operatoren returnere en reference til en integer som modtager værdien, og ikke din klasse. Sådan som compileren ser koden, set det (circa) sådan her ud:
return (this->classArray[op2]) } --- f.eks. vil jeg arbejde videre med værdierne - på en eller anden måde i selve class-funktionen. men jeg kan først arbejde videre hvis med værdien op1 efter at jeg har brugt return. efter return er hele funktionen færdig, så jeg bliver nød til at kalle på to funktioner. en som setter værdierne - og en, som arbejder vider med værdierne.
hvorfor jeg bruger operator[] i stedet for setValues(index, value): jeg kan godt lide skrive-methoden array1[5] = 9 (det er mere eller mindre min personlig mening)
jeg kan godt lide at checke ting som jeg programerer med cout << ... det er let og hurtigt at bruge. i det viste eksempel kan jeg ikke bruge det, pga. at jeg ikke for fat i op1 ---
selvfølgelig hat i ret i, at det også er muligt at bruge setValues(index, value) - og det vil jeg sikkert også komme til at bruge. jeg synnes bare, det kunne være dejligt at arbejde med array1[index]
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.