国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

C++辨析系列談(一)

2019-11-17 05:11:25
字體:
來源:轉載
供稿:網友

  static 是C++中很常用的修飾符,它被用來控制變量的存儲方式和可見性,下面我將從 static 修飾符的產生原因、作用談起,全面分析static 修飾符的實質。

static 的兩大作用:

一、控制存儲方式:

  static被引入以告知編譯器,將變量存儲在程序的靜態存儲區而非棧上空間。

  1、引出原因:函數內部定義的變量,在程序執行到它的定義處時,編譯器為它在棧上分配空間,大家知道,函數在棧上分配的空間在此函數執行結束時會釋放掉,這樣就產生了一個問題: 假如想將函數中此變量的值保存至下一次調用時,如何實現?
最輕易想到的方法是定義一個全局的變量,但定義為一個全局變量有許多缺點,最明顯的缺點是破壞了此變量的訪問范圍(使得在此函數中定義的變量,不僅僅受此函數控制)。

  2、 解決方案:因此C++ 中引入了static,用它來修飾變量,它能夠指示編譯器將此變量在程序的靜態存儲區分配空間保存,這樣即實現了目的,又使得此變量的存取范圍不變。

二、控制可見性與連接類型 :

  static還有一個作用,它會把變量的可見范圍限制在編譯單元中,使它成為一個內部連接,這時,它的反義詞為”extern”.

  Static作用分析總結:static總是使得變量或對象的存儲形式變成靜態存儲,連接方式變成內部連接,對于局部變量(已經是內部連接了),它僅改變其存儲方式;對于全局變量(已經是靜態存儲了),它僅改變其連接類型。

類中的static成員:

一、出現原因及作用:

  1、需要在一個類的各個對象間交互,即需要一個數據對象為整個類而非某個對象服務。

  2、同時又力求不破壞類的封裝性,即要求此成員隱藏在類的內部,對外不可見。

  類的static成員滿足了上述的要求,因為它具有如下特征:有獨立的存儲區,屬于整個類。

二、注重:

  1、對于靜態的數據成員,連接器會保證它擁有一個單一的外部定義。靜態數據成員按定義出現的先后順序依次初始化,注重靜態成員嵌套時,要保證所嵌套的成員已經初始化了。消除時的順序是初始化的反順序。

  2、類的靜態成員函數是屬于整個類而非類的對象,所以它沒有this指針,這就導致了它僅能訪問類的靜態數據和靜態成員函數。 更多文章 更多內容請看C/C++技術專題專題,或

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 东安县| 靖边县| 山西省| 炉霍县| 克山县| 延吉市| 苏尼特右旗| 东辽县| 九龙县| 师宗县| 库伦旗| 海丰县| 苗栗县| 娱乐| 会理县| 基隆市| 云林县| 桐柏县| 灯塔市| 东方市| 星子县| 乡宁县| 澄城县| 曲阜市| 藁城市| 邵东县| 本溪市| 美姑县| 牡丹江市| 仙游县| 勐海县| 大理市| 常德市| 枣阳市| 宜昌市| 确山县| 柳江县| 贡嘎县| 昌平区| 香港| 特克斯县|