Buona sera a tutti,

sto lavorando su un progetto impegnativo che è composto da diversi file, quindi non so se è comodo postarlo.
In questo progetto, tra le altre classi, ce ne sono 2 che ereditano entrambe da una superclasse.

Inizialmente avevo fatto un copia-incolla globale di tutti i metodi e le variabili comuni e non, e sono arrivato ad un punto in cui il programma funziona a dovere.
Ho così deciso di migliorarlo introducendo l'ereditarietà. Creata la superclasse contenente i metodi e variabili comuni, ho applicato l'ereditarietà su una delle classi, e tutto funziona correttamente.
Ho cercato di fare la stessa cosa con la seconda in modo massivo e c'erano alcuni errori di run-time di cui non capivo l'origine. Così, utilizzando il principio dell'overriding ho provato ad ereditare variabile per variabile, metodo per metodo.
L'unico successo che ho avuto è stato quando ho ereditato una costante, per qualsiasi variabile o metodo, avviato il programma appare un errore in Windows del tipo
"Si è verificato un errore in progetto.exe. L'applicazione verrà chiusa.", invia, non inviare[...].

Ogni volta che compariva questo errore tornavo sui miei passi, togliendo il commento alla parte che avevo provato ad ereditare. Ho provato ad ereditare due metodi contemporaneamente e c'era quell'errore, ho aspettato un po', riavviato il programma e non c'erano più errori. Ho ereditato un altro metodo e ri-ecco nuovamente l'errore.

Io non so davvero cosa sto sbagliando, magari c'è qualcosa che mi sfugge nell'ereditarietà. Oltre a questo non riesco a fare il debug e prima di avviare il programma cancello ogni volta i files temporanei in modo da ricompilare il tutto da zero.

Posto i prototipi delle classi interessate:

codice:
HEADER FILE DELLA CLASSE SNAKE, LA SUPERCLASSE

#ifndef SNAKE_
#define SNAKE_

#include "campoDiGioco.h"
#include "pezziDelloSnake.h"

using namespace std;



class snake
{
      public:
             campoDiGioco *tabella; 
             bool stampaSnake(campoDiGioco*);
             virtual int getTasto();
             static int righe;
             int **snakeArray ;
             
             void riallocaSnakeArray();
             void allocaElementoAggiunto();
             
      static const int COLONNE = 4;
      static const int SINISTRA=75;
      static const int DESTRA=77;
      static const int ALTO=72;
      static const int BASSO=80;
};

#endif

HEADER FILE DELLA CLASSE HUMANSNAKE, LA PRIMA DERIVATA 
PER LA QUALE NON HO PROBLEMI DI EREDITARIETA'
#ifndef HUMAN_SNAKE
#define HUMAN_SNAKE
#include "campoDiGioco.h"
#include "snake.h"

using namespace std;

class humanSnake : public snake
{
      public:
                      
             humanSnake();
             int getTasto(); //ridefinito da virtual
             int muoviSnake();
               
           
};

#endif


HEADER FILE DELLA CLASSE VIRTUALSNAKE, CHE STO PROVANDO A 
DEFINIRE COME EREDITATA DA SNAKE, MA PER COLPA
 DI QUESTI INSPIEGABILI ERRORI NON CI RIESCO

#ifndef VIRTUAL_SNAKE
#define VIRTUAL_SNAKE
#include "campoDiGioco.h"
#include "snake.h"


using namespace std;



class virtualSnake : public snake
{
      public:
                      
             void mangiati();
             virtualSnake();
             int getTasto();
             
             static int random;
             
             campoDiGioco *tabella;
                   
             bool stampaSnake(campoDiGioco*);
             int getTasto();
             virtual int muoviSnake();
             int muoviSnake(campoDiGioco*);
             static int righe; 
                    
             int **snakeArray ;
             void riallocaSnakeArray();
             void allocaElementoAggiunto();
             
      static const int COLONNE = 4;
      static const int SINISTRA=1;
      static const int DESTRA=2;
      static const int ALTO=3;
      static const int BASSO=4;
             
             private:
                     void inizializzaPosizioniProvate();
                     int randomGenerator (int max, int min);
                     int posizioniProvate [3];
           
};


#endif
Grazie del supporto!!