Salve a tutti, ho un problema.
Non riesco a capire perchč il codice seguente, che effettua una somma di un valore double ad ogni componente di un array(metodo Add), non funziona. Chiedo aiuto
Grazie.


#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <iostream.h>

class MYCLASS
{
private:
double *mioarray;
int c;
int d;

public:
MYCLASS()
{c = 0;
d = 0;
mioarray = 0x00;}

MYCLASS(int nc, int nr)
{d = nc;
c = nr;
mioarray = new double[d*c];}

// Genero un costruttore di copia
MYCLASS(const MYCLASS &ris)
{d = ris.d;
c = ris.c;
mioarray = new double[d*c];
int total = d * c;
for (int i=0;i<total;i++){Set(i,Get(i));}
}


MYCLASS Add(MYCLASS ris, double cosB)
{MYCLASS *risultato = new MYCLASS(ris.d,ris.c);
int num_pos = (risultato->d) * (risultato->c);
double Val;
double cosA;
for (int i=0;i<num_pos;i++)
{
cosA = ris.Get(i);
Val = cosA + cosB;
risultato->Set(i,Val);}

return *risultato;
}


double Get(int i) { return mioarray[i]; }
double Get(int i, int j) { return mioarray[i * d + j]; }
void Set(int i, double Val) { mioarray[i] = Val; }
void Set(int i, int j, double Val) { mioarray[i * d + j] = Val; }

};

void main()
{
MYCLASS *prova = new MYCLASS(2,2);
MYCLASS *prova1 = new MYCLASS(2,2);
double a = 1.00;

prova->Set(0,0,3.22);
prova->Set(0,1,5.60);
prova->Set(1,0,11.55);
prova->Set(1,1,12.32);
prova1->Add(*prova,a);
}