代碼先行:可以const成員函數返回一個非常量指針給數據成員?
class A
{
public:
...
int *foo() const
{
return _px;
}
private:
int *_px;
}
成員函數foo
返回一個非const指針private
成員_px
,其中,我認爲,打開門來修改構件_px
,對不對?
是foo
一個const
成員函數?我應該在返回類型前添加const
嗎?
UPDATE
什麼一個const成員函數應該保證的是,它不能改變任何數據成員,對不對?
在我的情況下,功能foo
沒有打開大門修改class A
s的數據成員_px
,但一進門就改變什麼_px
指向,所以我的問題是,這是否違反了一個const功能應能保證什麼?
編譯器在啓用警告時說了些什麼? – Arunmu 2012-01-09 13:08:03
@ArunMu gcc 4.6.1什麼也沒說。 – jrok 2012-01-09 13:09:34
@ArunMu,好吧,沒什麼。 – Alcott 2012-01-09 13:12:34