中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么淺析C++中的C++關鍵字

發布時間:2021-10-28 09:12:28 來源:億速云 閱讀:148 作者:柒染 欄目:編程語言

怎么淺析C++中的C++關鍵字,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

C++語言中,然后就總結了許多C++關鍵字,如果不使用常引用、指針,則須用const_cast<>進行轉,指向字符char的常指針經常用來表示字符串,像windows中的LPCSTR就是const char *。

1. 修飾常量

最基本的用法,用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;  };

2. 修飾引用,指針

對一個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”可以修改

3. 修飾對象

如果修飾的是一個對象,則表示該對象的數據成員均為常量,并且只能調用該對象的常成員函數,這一點在后面解釋。綜合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”可以修改

4. 另外一種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++關鍵字的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

c++
AI

龙游县| 乌兰县| 阳朔县| 嘉定区| 镇康县| 瑞金市| 左权县| 刚察县| 庆云县| 南汇区| 上林县| 甘肃省| 东安县| 清苑县| 五大连池市| 齐河县| 那坡县| 会东县| 靖州| 兰西县| 济宁市| 罗城| 八宿县| 三都| 班玛县| 永胜县| 内江市| 安顺市| 剑阁县| 安泽县| 德格县| 田林县| 桐庐县| 青龙| 安溪县| 祁连县| 莱西市| 长岭县| 临泽县| 庆元县| 哈密市|