返回顶部

收藏

C++ 之 const 修饰符用法详解

更多

例1:

int i = 0;  
    const int j = 0; // int const j = 0;  
    const int *p;  // int const *p ;可改变p但不能改变*p  
    int* const p = &i;  //可改变*p但不能改变p  
     const int * const p = &i; // int const  * const p = &i; p,*p都不能改变  

                                例二: 为什么错误,为什么正确? 大家自己思考
class Test{  
public:  
    const int i; //正确  
    int & j;     //正确  

};  

int main(){  
    const int i; //编译错误  
    int & j;     //编译错误  
}  

                                const修饰成员函数:const类对象只能调用const成员函数,而const成员函数不能修改类的成员变量。const成员函数若要修改某成员变量,就必须用mutable修饰该成员变量。

const修饰函数参数:若是按值传递参数,不要用const修饰,因为这没有作用,而且容易产生误导。按值传递的函数参数最好是改为const的引用参数。

const修饰函数返回值:当函数返回值不是内部类型时,通常用const修饰返回值。因为函数返回值是个临时对象,这样有助于编译器检查出调用者试图修改这临时对象。

const的目的是正确性,而且没有运行的开销(编译时完成)。在C++里const的正确性仅仅是类型信息的另一种形式,是把程序员头脑里的正确信息语言化。

标签:const,常量,C++

收藏

0人收藏

支持

0

反对

0

发表评论