PDA

Visualizza la versione completa : [C++] Uso di const in classe base


giuseppe500
16-01-2011, 20:22
ciao.
Ho la seguente funzione :


CBoundingBoxSphere* CBoundingBoxSphere::MergeSpheres (const CBoundingBoxSphere& rkSphere0, const CBoundingBoxSphere& rkSphere1)
{
XMVECTOR kCDiff = rkSphere1.GetCenter() ;
.
.
.


CBoundingBoxSphere deriva da CBoundingBoxBase che ha una funzione:



XMVECTOR CBoundingBoxBase::GetCenter()
{
return m_fCenter;
}


mi da quest errore:
Error 1 error C2662: 'PGE::CBoundingBoxBase::GetCenter' : cannot convert 'this' pointer from 'const PGE::CBoundingBoxSphere' to 'PGE::CBoundingBoxBase &' C:\PGN2010\trunk\PGEAPP\BoundingBox\BoundingBoxSph ere.cpp 27


se tolgo i const tutto funziona correttamente , solo che io vorrei iniziare ad usarli .

grazie.

deleted_29
16-01-2011, 20:28
hai messo un & di troppo

giuseppe500
16-01-2011, 20:51
non credo sia quello il problema, ho risolto mettendo un const dopo la funzione , ma non ho una spiegazione chiara del perchè.

KrOW
16-01-2011, 23:11
Ciao ... Se vuoi richiamare un metodo su di un oggetto costante, il metodo deve essere anchesso dichiarato costante (cio garantisce che all' interno del metodo non si potra modificare l' oggetto) ... Nel tuo caso potresti modificare il prototipo e la definizione del metodo GetCenter:

XMVECTOR CBoundingBoxBase::GetCenter() const;
.......
XMVECTOR CBoundingBoxBase::GetCenter() const
{
return m_fCenter;
}

Loading