Pero la parte de int n = NCasillas(void) no me funciona
Y no debe funcionar ya que es un error. Cuando se llama a una función que no recibe argumentos se utilizan los paréntesis vacíos.
El uso de void es necesario
en el lenguaje C en la declaración y definición de una función
pero no en los usos de (llamadas a) esta.
En el caso de C++ el uso de void no es necesario y no se recomienda.
Si tomo tu programa y la definición de la función "PintaVector" la sustituyo por esta:
void VectorDinamico::PintaVector(void)
{
int n = NCasillas();
for (int i=0; i<n; i++)
cout << vector << endl;
}
Compila sin problemas.
Un saludo