C++之const

来源:互联网 发布:导航触摸屏校正软件 编辑:程序博客网 时间:2024/06/06 04:46

const与define的比较

之前在学习C语言的过程中便听说过const要优于define,所以专门去查了一下const的优点,总结如下:
1.define宏是在预编译阶段进行替换,而const修饰的只读变量是在编译的时候确定其值。
2.define宏没有类型,而const修饰的只读变量具有特定的类型。
3.define宏并不会为常量分配内存,而常量可以。
由于存在上述两个特点,编译器对define的变量只是简单进行替换,但是const类型的常量有类型,编译器会进行类型检查所以更安全,更准确。
下面一个例子便可以看出const和define的区别

#include<iostream>#define a 7+7int main(){    const int b = 7 + 7;    int c;    c = a * a;    std::cout << "define--" << c << "\n";    c = b * b;    std::cout << "const--" << c << "\n";    getchar();    return 0;}

const修饰函数参数,函数返回值,作为后缀修饰成员函数

  1. void myfun(const int *i);
    在函数内部任何修改*i的值都是不合法的,const尤其是在传入指针类型变量的时候很好保护原值不被修改。
  2. const int myfun();
    此处返回const值, 意思指返回的原函数里的变量的初值不能被修改, 但是它可以被赋给任何的const或非const类型变量, 完全不需要加上这个const关键字.但这只对于内部类型而言(因为内部类型返回的肯定是一个值, 而不会返回一个变量, 不会作为左值使用), 对于用户自定义类型, 返回值是常量是非常重要的。
  3. void myfun()const;
    在成员函数声明后面加const便限定了,在此成员函数的定义中不能对成员变量进行修改(但是可以访问),不能调用非const类型的成员函数。
阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 伏特加基酒 酒基是什么 基酒和原浆酒的区别 老基酒价格表 老基酒价格 基酒是什么意思 豫坡老基酒全部价格表 孟尝君老基酒价格 原浆基酒 豫坡老基酒价格52 豫坡老基酒图片及价格 酒基酒价格 基酒价格 什么叫基酒 调酒基酒 基金 天天基金 基金赎回 维修基金 易方达基金 买货币基金 指数基金 汇添富基金 基金从业 基金定投 etf基金 兴全基金 酷基金网 001071基金 基金投资 基金经理 天天基金网自选基金 基金090003 基金481001 自选基金天天基金网 基金购买 查基金净值 购买基金 广发基金 混合基金 爱基金