【详解】const(参数、返回值、成员函数)

    xiaoxiao2025-03-07  91

    const是一个C语言的关键字,它限定一个变量不允许被改变。使用const在一定程度上可以提高程序的安全性和可靠性。

    const Date* const this; 第一个const表示指向空间的内容不能修改,第二个const表示指针本身的内容不能修改。

    1.修饰函数的参数 如果参数作输出用,不论它是什么数据类型,也不论它采用下文讨论的“指针传递”还是“引用传递”,都不能加const 修饰,否则该参数将失去输出功能。const 只能修饰输入参数。 修饰指针传递的参数:

    char * strcpy(char * strDest,const char * strSrc);

    strSrc不能被修改。 2.修饰函数的返回值

    class A { A & operate = (const A & other); // 赋值函数 } ; A a, b, c; // a, b, c 为A 的对象 a = b = c; // 正常的链式赋值 (a = b) = c; // 不正常的链式赋值,但合法

    将赋值函数的返回值加const 修饰,那么该返回值的内容不允许被改动。上例中,语句 a = b = c 仍然正确,但是语句 (a = b) = c 则是非法的。 3.修饰成员函数

    void Func() const { }

    表示这个函数是一个“只读函数”,函数不能改变类对象的状态,不能改变对象的成员变量的值。

    问题: 1.const对象可以调用非const成员函数吗?--------->不能 2.非const对象可以调用const成员函数吗?--------->可以 3.const成员函数内可以调用其他的非const成员函数吗?--------->不能 4.非const成员函数可以调用其他的const成员函数吗? --------->可以

    结论:普通对象可以调用const成员函数,做到只读但不修改;const不能调用普通成员函数,做不到修改变量。

    最新回复(0)