Kod idzie pierwszy:Czy funkcja członkowska can const zwraca wskaźnik niestały do elementu danych?
class A
{
public:
...
int *foo() const
{
return _px;
}
private:
int *_px;
}
Funkcja członkiem foo
zwraca non-const wskaźnik do private
członka _px
, który, jak sądzę, otwiera drzwi do modyfikowania członkiem _px
, prawda?
Czy foo
jest funkcją członka? Czy przed typem zwracania należy dodać wartość const
?
UPDATE
Co const państwie funkcja powinna gwarantować to, że nie można zmieniać żadnych danych-member, prawda?
W moim przypadku, funkcja foo
nie otwiera drzwi do modyfikowania danych class A
s-członek _px
, ale drzwi do modyfikowania co _px
wskazując, więc moje pytanie brzmi, czy to, co narusza const funkcja powinna gwarantować ?
Co mówi kompilator z włączonym ostrzeżeniem? – Arunmu
@ArunMu gcc 4.6.1 nic nie mówi. – jrok
@ArunMu, cóż, wydaje się niczym. – Alcott