ho cambiato un pasticcio che avevo fatto anche se non ha risolto il problema, ora ho capito cosa volevi dire con l'inutilità di generare il nuovo oggetto, ora la tabella punta all'oggetto creato, che pasticcio avevo fatto.
codice:
if (this->tabella->at(riga)->at(colonna)->getNumero() == 0 && this->controllaVincoli(casella) == true) //se quel valore è gia presente in riga, colonna o regione
		{
			valore = (rand() % (this->sizeTabella)) + 1; //calcola un valore diverso
			std::cout << "rand 2 =" << valore << std::endl;
			casella->setNumero(valore);
			casella->setFisso(true);
			
		}
		this->tabella->at(riga)->at(colonna) = casella; //<--------------------- cambiato qui