ok! Ma perchè se faccio:Originariamente inviato da MacApp
Puoi restituire il puntatore a vComputer od il suo riferimento:
in entrambi i casi viene NON viene copiato il vettore.codice:vector<Computer> * Computer::getVectorComputerPointer(){ return &vComputer; } vector<Computer> & Computer::getVectorComputerRef(){ return vComputer; }
Ma attenzione:
nel terzo caso, pur chiamando getVectorComputerRef, il chiamante costruisce una copia di vComputer di Computer.codice:void TestComputer (Computer * theComputer){ typedef vector<Computer> ComputerContainer; ComputerContainer * aComputerContainerPointer = theComputer->getVectorComputerPointer (); // aComputerContainerPointer punta al membro vComputer di Computer ComputerContainer & aComputerContainerRef = theComputer->getVectorComputerRef (); // aComputerContainerRef punta al membro vComputer di Computer ComputerContainer aComputerContainerCopy = theComputer->getVectorComputerRef (); // aComputerContainerCopy è una copia del membro vComputer di Computer; }
mi da errore?codice:aComputerContainerPointer.size()

Rispondi quotando