Codice va in primo luogo:La funzione membro const può restituire un puntatore non-const a un membro dati?
class A
{
public:
...
int *foo() const
{
return _px;
}
private:
int *_px;
}
La funzione di membro foo
restituisce un puntatore non-const a private
membro _px
, che, credo, si apre una porta alla modifica membro _px
, giusto?
È foo
a const
funzione membro? Dovrei aggiungere uno const
davanti al tipo di ritorno?
UPDATE
Che const-membro-funzione dovrebbe garantire è che, non può cambiare tutti i dati-utente, giusto?
Nel mio caso, la funzione foo
non apre una porta per la modifica class A
s dati-membro _px
, ma una porta per modificare ciò che _px
indicando, Quindi la mia domanda è, fa questo violano ciò che un const-funzione deve garantire ?
Cosa dice il compilatore con avviso abilitato? – Arunmu
@ArunMu gcc 4.6.1 non dice nulla. – jrok
@ArunMu, beh, non sembra niente. – Alcott