Ciao.
Devo assolutamente chiarirmi le idee sui puntatori e le variabili
Ho una funzone del tipo:
codice:
void CImporter::ImportVertex(CSubMeshData * subMesh)
{
//chiamo la funzione di reset dei vertici
m_pApi->VertexReset();
float x,y,z;
//finchè il reader mi restituisce true ho un vertice da importare
//esco quando non ci sono piu' vertici
for(int index = 0;m_pApi->NextVertex();index++)
{
tagPositionXYZ* pos = new tagPositionXYZ();
if(m_pApi->ImportVertex(&x,&y,&z))
{
pos->x = x;
pos->y = z;
pos->z = -y;
subMesh.m_VertexBuffer.push_back(pos);
}
}
}
questa riempie un vector di puntatori tagPositionXYZ,e quando esco dalla funzione mi conserva i dati del vector
codice:
std::vector<tagPositionXYZ> CImporter::ImportVertex(CSubMeshData subMesh)
{
//chiamo la funzione di reset dei vertici
m_pApi->VertexReset();
float x,y,z;
//finchè il reader mi restituisce true ho un vertice da importare
//esco quando non ci sono piu' vertici
for(int index = 0;m_pApi->NextVertex();index++)
{
tagPositionXYZ pos ;
if(m_pApi->ImportVertex(&x,&y,&z))
{
pos.x = x;
pos.y = z;
pos.z = -y;
subMesh.m_VertexBuffer.push_back(pos);
}
}
return subMesh.m_VertexBuffer;
}
questa riempie un vector di tagPositionXYZ e quando esco dalla funzione mi ritorna il vector, riempito se aggiungo la clausola return xxxx.
Al lavoro mi hanno consigliato di utilizzare dove si puo' una variabile , anche perchè non necessita di distruzione e posso sempre passarla come puntatore con &variabile.
Il problema è che se ho creato nel 2° modo un vector di variabili ed esco dalla funzione o dalla classe senza il return <vector di var> perdo i dati giusto?
quindi devo stare attento alla visibilità.
quindi quando mi consigliate di utilizzare dei puntatori e quando le variabili , in questo e in altri casi.
Grazie