文档章节

const

种地瓜
 种地瓜
发布于 2016/08/16 00:14
字数 391
阅读 8
收藏 0

C++中, const限定符把一个对象转换成一个常量

     const int bufSize=512;

     const int i,j=0;     //eror ,i 必须要初始化

 

用const 替代#define的值替换功能

     const的最初动机是取代#define的值替换功能,它还通常用于指针,函数变量,返回类型,类对象机器成员函数

     用const比#define有更多的优点

    (1)const常量有数据类型,#define没有数据类型,编译器会对前者进行类型安全检查,后者只是对字符进行替换,没有类型安全检查

     (2)使用常量可能比使用#define导致产生更小的目标代码,这是因为预处理器“盲目将宏名称BUFSIZE替换为其代替的值 100“  可能导致目标代码出现多份100的备份,但常量就不会出现这种情况

     (3)同时const还可以执行常量折叠,就是说,编译器在编译时可以通过必要的计算把一个复杂的常量变表达式缩减成简单的

 

指针和修饰符

     指向const的指针

          const    double * cptr;

    const指针

            double a=2.2;

           double * const cptr=& a;

 

 

修饰函数参数与返回值

      1, const修饰返回值

      2,const用来修饰函数的参数

         void fun(const int i)

 

 

const在类中的应用:

         1,const成员函数

         2,const成员数据

                     常量成员(常量成员变量)必须在构造函数的成员初始化列表中进行初始化

 

参考《王道-程序员求职b

© 著作权归作者所有

共有 人打赏支持
种地瓜
粉丝 9
博文 175
码字总数 44807
作品 0
深圳
程序员

暂无文章

Spring中static变量不能@value注入的原因

今天本想使用@Value的方式使类中的变量获得yml文件中的配置值,然而一直失败,获得的一直为null。 类似于这样写的。 public class RedisShardedPool { private static ShardedJedisPool pool...

钟然千落
36分钟前
1
0
CentOS7防火墙firewalld操作

firewalld Linux上新用的防火墙软件,跟iptables差不多的工具。 firewall-cmd 是 firewalld 的字符界面管理工具,firewalld是CentOS7的一大特性,最大的好处有两个:支持动态更新,不用重启服...

dingdayu
今天
1
0
关于组件化的最初步

一个工程可能会有多个版本,有国际版、国内版、还有针对各种不同的渠道化的打包版本、这个属于我们日常经常见到的打包差异化版本需求。 而对于工程的开发,比如以前的公司,分成了有三大块业...

DannyCoder
今天
2
0
Spring的Resttemplate发送带header的post请求

private HttpHeaders getJsonHeader() { HttpHeaders headers = new HttpHeaders(); MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8"); ......

qiang123
昨天
3
0
Spring Cloud Gateway 之 Only one connection receive subscriber allowed

都说Spring Cloud Gateway好,我也来试试,可是配置了总是报下面这个错误: java.lang.IllegalStateException: Only one connection receive subscriber allowed. 困扰了我几天的问题,原来...

ThinkGem
昨天
32
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部