Código va primero:¿Puede la función de miembro de miembro devolver un puntero no const a un miembro de datos?
class A
{
public:
...
int *foo() const
{
return _px;
}
private:
int *_px;
}
La función miembro foo
devuelve un puntero no constante a private
miembro de _px
, que, creo, se abre una puerta a la modificación miembro de _px
, ¿verdad?
¿Es foo
una función de miembro const
? ¿Debo agregar un const
en frente del tipo de devolución?
ACTUALIZACIÓN
Qué const-miembro-función debe garantizar es que, no se puede cambiar cualquier dato miembros, ¿verdad?
En mi caso, la función foo
no se abre una puerta a la modificación de los datos class A
s miembros _px
, pero una puerta a la modificación de lo que apunta a _px
, así que mi pregunta es, ¿esto violan lo que es un const-función debe garantizar ?
¿Qué dice el compilador con la advertencia habilitada? – Arunmu
@ArunMu gcc 4.6.1 no dice nada. – jrok
@ArunMu, bueno, parece que nada. – Alcott