| 	
	
	
		
		|||||||
  | 
		
| 
 | 
![]()  | 
	
	
| 
		 | 
	Strumenti | 
| 		
			
			 | 
		#1 | 
| 
			
			
			
			 Junior Member 
			
		
			
			
			Iscritto dal: May 2005 
				
				
				
					Messaggi: 26
				 
				
				
				
				 | 
	
	
	
	
		
			
			 
				
				problemini con l'uso dei new in c++
			 
			
		Ciao a tutti,  
		
	
		
		
		
		
		
	
	ho un problemino con una funzione(membro di una classe) che ho creato e che sicuramente per voi esperti è banale risolvere ma,a me neofita,sta facendo impazzire.La funzione restituisce l’indirizzo di un oggetto e come parametro ha l’indirizzo di un oggetto insomma è fatta cosi’: oggetto* funzione(oggetto* og1) { p=new oggetto(n); …. Blocco funzione …. Return p; } nel main d’altra parte ho dichiarato,di contro,2 oggetti cosi’ usando il costruttore di copie per il secondo oggetto: main() { oggetto *og1=new oggetto(m); …. Blocco dati ….. oggetto og2(*funzione(og1));//ho usato il costruttore di copie dell’oggetto. …. Blocco dati ….. Delete og1; } Le domande sono queste(premettendo che gli oggetti in questione fanno riferimento ad una classe che ha della memoria allocata dinamicamente il cui delete sta nel distruttore: 1)quando passo og1 alla funzione devo passarci la copia(con il costruttore di copie?oppure va bene come ho fatto?se devo passarci la copia mi potete dire come si fa e perche’ si passa la copia? 2) per come ho creato io la funzione non posso cancellare la memoria che ho allocato dinamicamente dentro la funzione perche’ ne devo restituire il puntatore che mi serve per far copiare il contenuto dell’oggetto( puntato da p dentro la funzione) a og2 nel main,ma allora il new interno della funzione ,in questo caso,non posso mai cancellarlo!!!come devo fare per cancellarlo dopo la copia nel main?forse nel distruttore della classe devo mettere cosi’ ~oggetto(delete funzione(og1))non riedete per la proposta ? Ve lo chiedo perche’ il programma ,anche se credo sia tutto corretto si blocca in fase di execute quando vengono richiamati i distruttori degli oggetti(che hanno anch’essi della memoria dinamica allocata).Grazie a chiunque tenti di rispondermi.  | 
| 
		
 | 
	
	
	
		
		
		
		
		
		
			 
		
		
		
		
		
		
			
			
		
	 | 
		
		  
	   | 
| Strumenti | |
		
  | 
	
		
  | 
Tutti gli orari sono GMT +1. Ora sono le: 02:14.









		
		
		

 
 







