偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

詳細(xì)介紹C++中的常用修飾符static

開發(fā) 后端
本文介紹的是C++程序設(shè)計(jì)語言中的修飾符static,比較適合初學(xué)者閱讀,希望對(duì)你有幫助,一起來看。

static c++中很常用的修飾符,它被用來控制變量的存儲(chǔ)方式和可見性,下面我將從 static 修飾符的產(chǎn)生原因、作用談起,全面分析static 修飾符的實(shí)質(zhì)。

static 的兩大作用:

一、控制存儲(chǔ)方式:

static被引入以告知編譯器,將變量存儲(chǔ)在程序的靜態(tài)存儲(chǔ)區(qū)而非棧上空間。

1、引出原因

函數(shù)內(nèi)部定義的變量,在程序執(zhí)行到它的定義處時(shí),編譯器為它在棧上分配空間,大家知道,函數(shù)在棧上分配的空間在此函數(shù)執(zhí)行結(jié)束時(shí)會(huì)釋放掉,這樣就產(chǎn)生了一個(gè)問題: 如果想將函數(shù)中此變量的值保存至下一次調(diào)用時(shí),如何實(shí)現(xiàn)?

最容易想到的方法是定義一個(gè)全局的變量,但定義為一個(gè)全局變量有許多缺點(diǎn),最明顯的缺點(diǎn)是破壞了此變量的訪問范圍(使得在此函數(shù)中定義的變量,不僅僅受此函數(shù)控制)。

2、 解決方案

因此c++ 中引入了static,用它來修飾變量,它能夠指示編譯器將此變量在程序的靜態(tài)存儲(chǔ)區(qū)分配空間保存,這樣即實(shí)現(xiàn)了目的,又使得此變量的存取范圍不變。

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

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

static作用分析總結(jié):

static總是使得變量或?qū)ο蟮拇鎯?chǔ)形式變成靜態(tài)存儲(chǔ),連接方式變成內(nèi)部連接,對(duì)于局部變量(已經(jīng)是內(nèi)部連接了),它僅改變其存儲(chǔ)方式;對(duì)于全局變量(已經(jīng)是靜態(tài)存儲(chǔ)了),它僅改變其連接類型。

類中的static成員:

一、出現(xiàn)原因及作用:

1、需要在一個(gè)類的各個(gè)對(duì)象間交互,即需要一個(gè)數(shù)據(jù)對(duì)象為整個(gè)類而非某個(gè)對(duì)象服務(wù)。

2、同時(shí)又力求不破壞類的封裝性,即要求此成員隱藏在類的內(nèi)部,對(duì)外不可見。

類的static成員滿足了上述的要求,因?yàn)樗哂腥缦绿卣鳎河歇?dú)立的存儲(chǔ)區(qū),屬于整個(gè)類。

二、注意:

1、對(duì)于靜態(tài)的數(shù)據(jù)成員,連接器會(huì)保證它擁有一個(gè)單一的外部定義。靜態(tài)數(shù)據(jù)成員按定義出現(xiàn)的先后順序依次初始化,注意靜態(tài)成員嵌套時(shí),要保證所嵌套的成員已經(jīng)初始化了。消除時(shí)的順序是初始化的反順序。

2、類的靜態(tài)成員函數(shù)是屬于整個(gè)類而非類的對(duì)象,所以它沒有this指針,這就導(dǎo)致了它僅能訪問類的靜態(tài)數(shù)據(jù)和靜態(tài)成員函數(shù)。

希望通過以上內(nèi)容的介紹,可以給大家?guī)韼椭?/p>

【編輯推薦】

  1. 淺談C++指針直接調(diào)用類成員函數(shù)
  2. C/C++作用域引申出的編碼規(guī)范
  3. 用C++語言編寫COM組件
  4. 解析C++中的內(nèi)部連接與外部連接
  5. 詳細(xì)介紹C++中指針的使用
責(zé)任編輯:于鐵 來源: 互聯(lián)網(wǎng)
相關(guān)推薦

2011-07-20 16:57:05

C++const

2011-07-20 16:50:39

inlinec++

2009-08-24 16:49:39

C#修飾符

2009-09-04 11:06:40

C#訪問修飾符

2009-06-12 14:46:05

static修飾符Java教程

2009-08-21 13:58:06

C# virtual修

2009-08-27 11:12:03

C# abstract

2009-08-27 11:04:08

C# extern修飾

2009-08-27 13:06:13

C# new修飾符

2009-09-02 17:14:28

C#修飾符

2010-01-11 18:46:15

VB.NET修飾符

2009-09-02 17:04:35

C# Extern修飾

2009-08-27 11:16:40

C# sealed修飾

2011-05-13 14:56:14

autoregisterstatic

2011-07-20 15:58:53

C++引用

2011-04-07 16:34:05

staticC++

2011-06-28 09:29:11

C#修飾符

2011-06-02 14:51:07

JAVA修飾符

2011-07-20 13:34:37

C++

2011-07-20 17:16:50

C++重載函數(shù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)