我们知道,如果要定义一个只读的变量,可以这样做const int a =5;那么a也就一直等于5
今天遇到const和函数之间的问题,不太熟悉,因此了解了一下
const 修饰参数
第一种情况:int a(const int &b,const int &c){ },在这个函数里面,传入的两个引用(或者说是指针)的值都不能够改变,对于非指针或者引用那就无任何意义了,因为他本来就是个局部变量,很快就释放了,因此,这种情况下,不会改变传去的参数的值,只读
const 在函数名之后
第二种情况: int a() const; 在函数名后面加上const关键字,这个const 在这种情况下,对于成员函数才有意义,意思是不改变成员的值,叫常量函数 比如说是这样子
class A
{
int a;
int b;
int c() const;
int d() const;
int e();
}
这样子的话,常量成员函数,就不能访问非常量成员函数(就是那些普通函数),因为那些函数很有可能会改变成员的值,那么const的初衷就达不到了
const 在函数名之前
第三种情况:const int *a(){};const 在函数前面,便是传回的指针或引用不能被修改,用于描述返回值的,传回的值不被修改,
如 const char* a(); 那么 不能这样用 char *p = a(); 要这样用 const char*p = a();