Originariamente inviato da MacApp
Puoi restituire il puntatore a vComputer od il suo riferimento:
codice:
vector<Computer> * Computer::getVectorComputerPointer(){
	return &vComputer;
}

vector<Computer> & Computer::getVectorComputerRef(){
	return vComputer;
}
in entrambi i casi viene NON viene copiato il vettore.
Ma attenzione:

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;
}
nel terzo caso, pur chiamando getVectorComputerRef, il chiamante costruisce una copia di vComputer di Computer.
ok! Ma perchè se faccio:
codice:
aComputerContainerPointer.size()
mi da errore?