本文记录了C++中的const关键字的内容,分为3个部分,const和define的区别,const的作用,const的使用。
const和define的区别
const的作用
- const用于定义常量:编译器可以进行静态数据类型的安全检查。
- const修饰函数形式参数:当参数为自定义类型或抽象数据类型时,应该将“值传递”改为“const &传递”,可以提高效率,如下:
void fun(A a);效率低,函数体内产生A类型的临时对象用于复制参数a,临时对象的构造、复制、析构过程将消耗时间。
void fun(A const &a);效率极高。引用,不会产生临时对象,节省了时间,但是光引用有可能改变a的值,所以加const
- const修饰函数的返回值:如,给“指针传递”的函数返回值加const,则返回值不能被直接修改,且这个返回值只能被赋值给加 const修饰的同类型指针。如下:
const char *GetChar(){}
char *ch = GetChar();//error
const char *ch = GetChar();//correct
- const修饰类的成员函数(函数定义体):任何不会修改数据成员的函数都应该用const修饰,这样,当不小心修改了数据成员或调用了非const成员函数时,编译器会报错。 int GetChar(void) const;
实例代码:
小结:在类成员函数的声明和定义中,const的函数不能对其数据成员进行修改操作。const的对象,不能引用非const的成员函数。
const的使用