文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

怎么浅析C++中的C++关键字

2023-06-17 17:21

关注

怎么浅析C++中的C++关键字,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

在C++语言中,然后就总结了许多C++关键字,如果不使用常引用、指针,则须用const_cast<>进行转,指向字符char的常指针经常用来表示字符串,像windows中的LPCSTR就是const char *。

修饰常量

最基本的用法,用const修饰一个变量,表示这是一个常量,这种用法可以代替C语言里面的宏定义。注意要在声明时初始化,如果是类的数据成员,则在构造函数的初始化列表中初始化。

const int a=999;    //定义了常量a,代替宏定义  //const int b;        //错误,常量定义时要初始化  extern const int c;    //外部定义的常量不用初始化了  int const d=0;        //与const int等价,写法习惯不同而已  const long e=0;        //同理,把int换成char、long、类是一样的   class Cls  {  public:      Cls(int a,int b):_a(a)    //常数成员要在初始化列表初始化      {          _b=b;      }  private:      const int _a;      int _b;  };

修饰引用,指针

对一个C++关键字的引用或指针要用常指针,也就是不能修改所引用、指向的变量。如果不使用常引用、指针,则须用const_cast<>进行转换。指向字符char的常指针经常用来表示字符串,像windows中的LPCSTR就是const char *。

const int &g=a;            //a的内容不能改,所以g(a的引用)也是const  //int &h=a;            //错误  int &i=const_cast<int&>(a);    //使用const_cast<>()把常量转成非常量  int const &j=a;            //与const int &等价,写法习惯不同而已   const int *k=&a;        //a的内容不能改,所以k(a的指针)也是const  int const *l=&a;        //与const int *等价,写法习惯不同而已  //int *m=&a;            //错误  const char *n="string";        //字符串“string”内部字符不能改变了  char *o="string2";        //字符串“string2”可以修改

修饰对象

如果修饰的是一个对象,则表示该对象的数据成员均为常量,并且只能调用该对象的常成员函数,这一点在后面解释。综合1、2、3条得出,const修饰符表示所修饰的内存区域被上了锁,不能修改。

对一个对象的常引用经常用来函数传参,当函数参数为对象是,直接按值传参会调用对象拷贝构造函数,复制对象,对程序效率造成影响,所以一般按引用传参,为了不改变传入的参数,要加const表示是常引用。

const int &g=a;            //a的内容不能改,所以g(a的引用)也是const  //int &h=a;            //错误  int &i=const_cast<int&>(a);    //使用const_cast<>()把常量转成非常量  int const &j=a;            //与const int &等价,写法习惯不同而已   const int *k=&a;        //a的内容不能改,所以k(a的指针)也是const  int const *l=&a;        //与const int *等价,写法习惯不同而已  //int *m=&a;            //错误  const char *n="string";        //字符串“string”内部字符不能改变了  char *o="string2";        //字符串“string2”可以修改

另外一种const修饰指针的方法

也就是著名的const char *和char * const的区别的问题。const char *前面说过,意思是常指针,char*所指的内存区域不能被修改,用来表示字符串。而char * const的意思指针所指向的位置不能修改,C++关键字也就是该指针不能指向其他内存区域了,这和引用很像,char * const相当于char &,所以常引用const char &相当于const char * const,也就是指针指向谁不可变,指针指向的内容也不可变。注意const是写在了*的前面还是后面,这是***区别,char const *的意思和const char *是一样的。

看完上述内容,你们掌握怎么浅析C++中的C++关键字的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注编程网行业资讯频道,感谢各位的阅读!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯