c++的这个函数声明看不明白

来源:百度知道 编辑:UC知道 时间:2024/06/14 10:37:48
const unsigned char* getData() const;
最后那个const是干嘛的啊?不在括号内啊,奇怪

const unsigned char* getData() const;

这个应该是类的成员函数
后边的 const表示在这个函数里禁止对类的成员变量进行修改
除非这个变量定义时带有 mutable 修饰

class a
{
private:
int n;
public:
int fun(void) const;
};

int a::fun(void) const
{
n++;//因为有 const 后缀,这里修改成员变量的值,编译就会抱错
}

1.前一个const是用来修饰函数返回值的,是说明返回值不可被修改,而且返回值只能被const定义的变量接收
2.最后面的const是说明此函数不会修改类中的成员变量!如果在用const修饰以后,修改成员变量则会出现编译错误!

函数后跟const表示不改变类的成员变量的值!
楼主需要看看这个:
http://hi.baidu.com/%C4%CC%B2%E8dsk/blog/item/4edd329707bd916454fb9659.html