Nota inicial: Usa las etiquetas GeSHi para poner el código, gracias.
void mostrar(void){
for(int i=0;i<N;i++)cout<<V<<"";
cout<<endl;
return;
}
¿Pretendes imprimir "N" veces el vector "V"? me da la sensación de que te falta indicar el elemento a mostrar en cada iteración del for:
void mostrar(void){
for(int i=0;i<N;i++)cout<<V[i]<<"";
cout<<endl;
return;
}
PD.: por qué no usas la clase "vector" en vez de un arreglo? ¿si es por practicar o por exigencias del ejercicio vale, en caso contrario no merece la pena complicarse la vida.
#include <algorithm>
#include <vector>
class Clase
{
private:
std::vector< int > elementos; // V no me dice absolutamente nada, mejor nombres descriptivos
public:
Clase(int numElementos // n tampoco me dice nada)
{
for ( int i = 0; i < numElementos; ++i )
{
// has inicializado el generador de numeros aleatorios en algun sitio?
elementos.push_back( rand( ) % 51 );
}
// return; <<-- No es necesario
}
~Clase()
{
// delete[]V; <<-- Con la clase vector, esto ahora sobra
// return; <<-- No es necesario
}
// En C++ no es necesario poner "void" cuando una funcion no tiene argumentos
void mostrar( )
{
for_each( elementos.begin( ), elementos.end( ), [](int elemento){ cout<< elemento <<" "; } );
cout<<endl;
// return; <<-- No es necesario
}
// Es mejor que este operador devuelva una referencia, si no obligas a hacer una copia
// adicional del objeto, con el coste en tiempo y recursos que conlleva.
// Y lo mismo para el argumento de la funcion, es mejor pasar los "objetos" por referencia
// que por valor.
// El coste en este caso es muy bajo... pero es mejor adquirir buenas practicas desde el comienzo
const Clase& operator=( const Clase& m )
{
elementos = m.elementos; // Y ya esta, no necesitamos nada mas
return(*this);
}
};
Por cierto, deberías revisar los comentarios que he puesto en el código.