博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[C++面试]关于const的使用方法
阅读量:5042 次
发布时间:2019-06-12

本文共 1115 字,大约阅读时间需要 3 分钟。

面试C++时被问到关于const关键字的问题,在此总结一下。

(1)const修饰变量

const int var = 0;    //const修饰变量时,必须在声明变量的同时给出定义

(2)const在方法名后修饰

class CExample(){public:     int getData() const          //此处的const使用,是为了保证在getData()方法中不对                                   //该方法生命周期之外的值进行修改,用于保护成员变量    {           return m_data;    }private:     int m_data;   }

(3)const在方法名前后修饰

class CExample(){public:     const int* getData() const       //后面的const是为了保护成员变量在方法                                       //内不会被修改(修饰成员变量)                                      //前面的const是为了保证在外部调用该方法后,                                       //返回值不会被篡改(修饰方法)    {           return &m_data;    }private:     int m_data;   }

 

(4)mutable关键字的使用

class CExample(){public:     const int* getData() const         {           m_isdone = true;           return &m_data;    }private:     int m_data;      mutable bool m_isdone; //mutable是在当无法对该方法生命周期之外的成员                             //变量进行修改时,若有诸如标志位的变量需要进行修改时使用}

注:上述的概念均针对编译时有效,并不能有效防止在运行时的篡改。

      另外,当我向同事请教这个问题的时候,同事对我的建议是,const这一关键字主要是为了帮助我们控制代码的逻辑,并不要为了使用const而使用。

 

注:原创博客,转载请注明。

转载于:https://www.cnblogs.com/Vivianwang/p/6429722.html

你可能感兴趣的文章
处理GitHub不允许上传大于100M文件问题
查看>>
java实现数据结构
查看>>
bootstrap弹出框测试
查看>>
iOS UILabel设置行间距和字间距
查看>>
摘:JavaScript性能优化小知识总结
查看>>
创建djangoapp
查看>>
Guess UVALive - 4255 (拓扑排序)
查看>>
CQL语句
查看>>
团队项目题目更换
查看>>
WebServers发布提示oracle客户端模式不一致
查看>>
新版本Eclipse安装后插件都在哪里?
查看>>
centos 7安装libreoffice
查看>>
[CF1042F] Leaf Sets
查看>>
轮播图代码分享
查看>>
hdu 4632 回文子序列计数
查看>>
二叉搜索树的后序遍历序列
查看>>
多线程的通信方法
查看>>
VM Workstation 11 安装包
查看>>
mongodb的基本操作
查看>>
Reverse Nodes in K-Group
查看>>