代码先行:可以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