PDA

View Full Version : [C++] Costruire una classe


Matthew82
27-03-2008, 10:05
Premetto che mi sto approcciando per la prima volta allo studio del c++. Ho la seguente funzione scritta con codice C, vorrei scrivere il corrispondente codice c++ facendo uso delle classi. Sapete darmi una mano? :help:
Ecco il codice:

#include <malloc.h>

float *somma (float *x, float *y)
{
int i = 0;
float *p = (float *) malloc (4*sizeof(float));
for (; i < 4; i++) p[i] = x[i] + y[i];
return p;
}

Grazie a tutti

tomminno
27-03-2008, 12:34
Hai studiato qualcosa di C++?

Intanto potresti cominciare a creare una classe con un costruttore che accetta 2 parametri, magari gli stessi della tua funzione, poi già che stiamo parlando di C++ potresti usare vector<float> (magari passati per riferimento) invece dei puntatori.
E un metodo pubblico Somma() senza parametri che restituisce o un float* se rimani dell'idea di continuare ad usare i puntatori o un vector<float> (magari un riferimento ad una variabile privata)

Matthew82
27-03-2008, 12:57
Hai studiato qualcosa di C++?

Intanto potresti cominciare a creare una classe con un costruttore che accetta 2 parametri, magari gli stessi della tua funzione, poi già che stiamo parlando di C++ potresti usare vector<float> (magari passati per riferimento) invece dei puntatori.
E un metodo pubblico Somma() senza parametri che restituisce o un float* se rimani dell'idea di continuare ad usare i puntatori o un vector<float> (magari un riferimento ad una variabile privata)

Ho fatto così! E' giusto?

class Operazioni
{
int i;
float p;
public:
float somma(float, float );
};

tomminno
27-03-2008, 13:33
Si è giusto, ma prima sommavi array di float, adesso solo 2 float.


class Operazioni
{
private:
vector<float> p;
public:
vector<float> & somma(const vector<float> & f1, const vector<float> & f2);
}