zoukankan      html  css  js  c++  java
  • C++笔记(5)const和mutable 关键字

    C++笔记(5)const关键字

    1、const   A   fun2(   );   const   A*   fun3(   );
    返回const变量

    2、类成员函数中const的使用    
      一般放在函数体后,形如:void   fun()   const;     
    任何不会修改数据成员的函数都因该声明为const类型。如果在编写const成员函数时,不慎修改了数据成员,或者调用了其他非const成员函数,编译器将报错,这大大提高了程序的健壮性。

    3、const变量

    4、const对象
    只能访问const成员变量和const成员函数

    据说有这种面试题:
    class A
    {
            public :
            char get_m() const
            {
                     return m;
            }
            private:
            char m;
    }
    请在函数get_m中改变m的值。

    我想,对于这种流氓问题,只好使用流氓的做法:
            char get_m() const
            {
                    char * p = (char *) &m;
                    *p = 'C';
                     return m;
            }
    呵呵,可以做到,因为类内const函数是通过“把类内成员都作为const”来实现的。
    不过这是我这种“流氓程序员”的做法。

    实际上,经过同事的教导,应该使用mutable修饰符:
    mutable char m;
    这样即使在类的const函数内,m的类型也是可以改变的了。

    另外,如果想不要这份工作,也可以这么写:
    #define const
    哈哈,这样面试官就不敢要你啦。:D

    参考:
    http://dulao5.blog.hexun.com/6687190_d.html
  • 相关阅读:
    毕业设计后续工作目标
    毕业设计第二周每天工作
    毕业设计第二次本周目标
    毕业设计第一周每天工作
    毕业设计第一次本周目标
    MyEclipse在删除文件后servers报错问题解决
    Tomcat问题解决
    MVC设计模式授权第三方登录
    算法评估
    Spark 配置参数
  • 原文地址:https://www.cnblogs.com/cutepig/p/1375948.html
Copyright © 2011-2022 走看看