C++中的const使用小结

来源:互联网 发布:三国杀diy软件 编辑:程序博客网 时间:2024/06/05 05:11

const最简单理解就是“不可更改”。之后再根据const出现的位置来具体理解不可更改的内容。

A. 指针所指向的数据内容不可更改。
假如有定义: char str[] = “hello”; 则:
1. const char *p = str;
2. char const *p = str;
上两种定义方式含义相同,即表示通过指针p无法更改其所指向的数据内容。
但可改变指针p所指向的位置。也就是说p[0] = ‘a’是违法的,但p = “hello”是允许的。
同理 const char str[] = “hello”也一样。

B. 指针所指向的位置不可更改。
1. char* const p = str;
则p = “hello”是违法的,但p[0] = ‘a’是允许的。

C. 函数返回值为const。
const Object get();

D. 成员函数为const,声明后该成员函数无法更改成员变量(静态成员变量除外)

class Object{private:    int val;    static int i;public:    void fun() const    {        val = 0; //错误,不能更改成员变量        i = 0; //正确,i为静态变量    }}

E. 形参为const的,与A,B一致

0 0
原创粉丝点击