Originariamente inviato da giuseppe500
mi da quest errore:
Errore 1 error C2662: 'CSubMeshData::GetVectorVertexes' : cannot convert 'this' pointer from 'const CSubMeshData' to 'CSubMeshData &' c:\programmazione\d3dxcreatemeshfvf\emptyproject10 \submeshdata.cpp 272
non sono riuscito a capire il perchè .
ciao
Chiami un metodo non const da un oggetto const (il riferimento costante argomento dell'operatore d'assegnamento), e la cosa non è consentita.
Modifica il tuo metodo da non const a const:
codice:
std::vector<tagPositionXYZ*> CSubMeshData::GetVectorVertexes() const
{
return m_VertexBuffer;
}
chiaramente devi modificare di conseguensa anche la sua dichiarazione:
codice:
class CSubMeshData{
...
std::vector<tagPositionXYZ*> GetVectorVertexes() const;
...
};
Dato che ci sei potresti anche definire il seguente metodo:
codice:
const std::vector<tagPositionXYZ*> & CSubMeshData::GetVectorVertexesConstRef() const{
return m_VertexBuffer;
}
ed usarlo nell'assegnamento:
codice:
CSubMeshData& CSubMeshData::operator=(const CSubMeshData &data) {
this->m_VertexBuffer = data.GetVectorVertexesConstRef();
return *this;
}
Dato che ci sei fai anche un bel typedef:
codice:
typedef std::vector<tagPositionXYZ*> TagPositionXYZPtrContainer;
;-)