美文网首页C++学习笔记C++
C++用const修饰函数情形解析

C++用const修饰函数情形解析

作者: 这是朕的江山 | 来源:发表于2016-04-26 21:23 被阅读191次

1.如果给以“指针传递”方式的函数返回值加const修饰,那么函数返回值(即指针)的内容不能被修改,该返回值只能被赋给加const修饰的同类型指针。

例如函数const char * GetString(void);

如下语句将出现编译错误:

char*str = GetString();

正确的用法是const char *str =GetString();

2.任何不会修改数据成员的函数都应该声明为const类型。如果在编写const成员函数时,不慎修改了数据成员,或者调用了其它非const成员函数,编译器将指出错误,这无疑会提高程序的健壮性。

a.const对象只能访问const成员函数,而非const对象可以访问任意的成员函数,包括const成员函数.

b.const对象的成员是不可修改的,然而const对象通过指针维护的对象却是可以修改的.

c.const成员函数不可以修改对象的数据,不管对象是否具有const性质.它在编译时,以是否修改成员数据为依据,进行检查.

d.然而加上mutable修饰符的数据成员,对于任何情况下通过任何手段都可修改,自然此时的const成员函数是可以修改它的

例如下面的程序

class A()

{

public:

    int B(void);

    int C(void) const;

private:

      int a;

      mutable int b;

}

int A::C(void)const

{

     B();//报错

     a++;//报错

     b++;//正确,不报错

      return a;

}

That's all.

相关文章

  • C++用const修饰函数情形解析

    1.如果给以“指针传递”方式的函数返回值加const修饰,那么函数返回值(即指针)的内容不能被修改,该返回值只能被...

  • const修饰的函数与重载

    C++用const修饰函数,即:int get_size() const这样的声明的函数,是表示这个函数不修改类的...

  • C++ const用法

    一 修饰类 C++中const修饰类主要包括3个部分:数据成员,成员函数,对象。 数据成员const 修饰类的成员...

  • C++常对象-常函数-常成员变量

    C++常对象-常函数-常成员变量 C++常对象 C++常对象, 就是使用const修饰的类实例!const A a...

  • C++研发工程师笔试题/面试题(11-20)

    11. C++中const关键字作用有哪些? 定义常量 修饰函数形式的参数 修饰函数的返回值 修饰类的成员函数,表...

  • 高质量C++编程指南 ----其它编程经验

    11.1 使用const 提高函数的健壮性 11.1.1 用const 修饰函数的参数 如果参数作输出用,不论它是...

  • C++的const复习

    复习:如何访问静态成员 复习: const 修饰函数参数 复习:const 修饰成员函数(const的作用:说明其...

  • 常应用问题

    C++ const 常指针:const int* ptr;const 修饰int*,ptr指向整形常量,ptr指向...

  • 2018-11-27 类成员函数后面加const

    c++中关于const的用法有很多,const既可以修饰变量,也可以函数,不同的环境下,是有不同的含义。今天来讲讲...

  • passing 'xxx' as 'th

    一段代码: 报错: 错误点在于 n 是用 const 修饰的,他只能调用 const 函数。尽管那个函数并不会修改...

网友评论

    本文标题:C++用const修饰函数情形解析

    本文链接:https://www.haomeiwen.com/subject/myxcrttx.html