Código [Seleccionar]
Escalar::Escalar(int s)
{
S=s;
vectorV[S];
vectorW[S];
}
No puedes realizar este tipo de cosas..
Si quieres usar arrays de forma dinamica dimensionados por el usuario ,deberas utilizar asignación dinamica de memoria, en c++ , tienes el operador new , y delete para asignar y liberar respectivamente, y en C tienes las funciones malloc,calloc, realloc y free .
tu clase modificada mas o menos quedaría..
Código [Seleccionar]
class Escalar
{
private:
double *vectorV;
double *vectorW;
int S;
public:
Escalar();
Escalar(int s);
~Escalar();
void setS(int s);
int getS();
double llenarvectores();
double CalcularEscalar();
};
Fijate, la declaración de vectorV y vectorW
Equitativamente, tu constructor va a iniciar tus punteros reservando memoria según la cantidad de datos que el usuario pidio..
Código [Seleccionar]
Escalar::Escalar(int s)
{
S=s;
vectorV=new double[s];
vectorW=new double[s];
}
Y por ultimo,no estoy muy familiarizado con la poo , pero creería que tu destructor , tendría que borrar la memoria reservada , antes que se termine el ámbito de los punteros
.
Esto se hace con delete vectorV[]; ( ejemplo borrando memoria reservada para vectorV )
Saludos , espero a ver sido claro y a verte ayudado .