date 2019 0621 by wjb
百度解释:const是一个C语言(ANSI C)的关键字,具有着举足轻重的地位。它限定一个变量不允许被改变,产生静态作用。使用const在一定程度上可以提高程序的安全性和可靠性。
对于const第一印象就是对于传入的指针或者不能做赋值操作,只能取值。我理解的赋值就是对指针指向的对象不能修改其变量值,然后这种理解是错误的。如下代码:
//main.cpp
class Lines
{
public:
Lines() { }
~Lines(){ }
void SetLength(int _length)
{
mlinght = _length;
}
private:
int mlinght;
};
void setLineLenght(const void * _line ,int _length)
{
((Lines*)_line)->SetLength(_length);
}
int main()
{
Lines *mLine = new Lines();
setLineLenght((void*)mLine,100);
return 0;
}
对于setlinelength这个方法,被const修饰的参数指针line 修改其变量值。
因而,const修饰的指针 不能改变指针指向的内存。指针指向内对的对象,成员变量可以被修改;