E da un po che non programmavo e oggi ho ripreso...

codice:#include <cstdlib>
#include <ctime>

class Gen
{
private:
int *list;
int range;
int seed;
int gen_casual();
void SetRange(int v=100){ range=v; };
int GetRange(){ return range; };
public:
Gen(int c, int s=time(NULL));
~Gen();
int *GetList(int n=50);
};

Gen::Gen(int c, int s)
{
seed = s;
SetRange(c);
srand(seed);
}

Gen::~Gen()
{
// TODO
delete list;
}
int Gen::gen_casual()
{
return (int)( rand() % GetRange() + 1 );
}

int *Gen::GetList(int n)
{
list = new int[n];
for(int i=0; i < n; i++)
{
list[i] = gen_casual();
}
return list;
}

Va bene come progettazione di classe o è troppo incasinata???
Secondo me non va bene ...
Il distruttore è fatto male. devi deallocare un array con delete [] ptr ;
e non delete ptr ...
Inoltre se GetList viene invocata più volte ?
Ci devi mettere qualche controllo ( sia nel distruttore che in GetList )...

Come idea o come classe astratta sarebbe ok ...

EDIT:
per convenzione si uilizza l'identificatore di classe con prima lettra maiuscola e dentificatore di metodo o attributo con prima lettere minuscola ...
In entrambi i casi eventuali parole di senso compiuto, consecutive alla prima, vanno poste con iniziale maiusole:
GeneraNumeriCasuali -> id classe
ottieniValoreCasuale -> id metodo