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

首頁 > 編程 > C++ > 正文

C++ static的作用,非類中,和類中的static

2019-11-11 00:45:18
字體:
供稿:網(wǎng)友

不考慮類 static 的三個作用

作用1: 隱藏

當(dāng)同時編譯多個文件時,所有未加static前綴的全局變量和函數(shù)都具有全局可見性。

例如,同一模塊中,一個a.c,一個main.c a.c中

char a = 'A';void msg(){}

在main.c中可以直接訪問到,如果加上static, 那么將只能在本文件中訪問到,而無法被該模塊下的其他文件訪問到

作用2: static變量默認(rèn)初始化為0

* 包括未初始化的全局靜態(tài)變量 和 靜態(tài)局部變量。(存儲在BSS段,默認(rèn)都是0x00)

* 未初始化的全局變量 也是 默認(rèn)初始化為 0

string sa[10]; // string 默認(rèn)構(gòu)造函數(shù),為空串“”static int ia[10]; // 全局的,不論有無static 都初始化為0int main(){ string sa2[10]; // 局部,不過有默認(rèn)的構(gòu)造函數(shù)為空串“” int ia2[10]; // 局部,初始值是不確定的 return 0;}

作用3:保持局部變量的持久

staticb變量值初始化一次,聲明周期為整個源程序

在函數(shù)中的static變量,不像棧中存儲的局部變量會消失

int fun(int n){ static int sums = n; // 每次調(diào)用都想通過賦值初始化,其實(shí)只初始化了第一次而已 sums += n; return sums;}int main(){ for(int i=0;i < 5;i++) { 類中 static的作用

靜態(tài)數(shù)據(jù)成員

不屬于對象,屬于類,所有實(shí)例對象公用一份,

仍然有private,public,protect屬性

沒有對象實(shí)例,static成員依然存在類中

static 數(shù)據(jù)成員必須在類外初始化 當(dāng)然,如果在加上關(guān)鍵const, 則是可以在類中進(jìn)行初始化的

class A{public: static int a = 100; // 報錯};

這里寫圖片描述

class A{public: static int a;};int A::a = 100;****static成員存放在程序的全局(靜態(tài))存儲中,不算在類大小中

靜態(tài)成員函數(shù)

與靜態(tài)數(shù)據(jù)成員一樣,仍然屬于類

this指針是非靜態(tài)成員函數(shù)有的, static成員函數(shù)將沒有this指針

靜態(tài)成員函數(shù) 無法訪問屬于類對象的非靜態(tài)數(shù)據(jù)成員,也無法訪問非靜態(tài)成員函數(shù),只能調(diào)用其他的靜態(tài)成員函數(shù),訪問靜態(tài)的數(shù)據(jù)成員

static成員函數(shù)不能聲明為const

const 修飾成員函數(shù)表示 該成員函數(shù)不會修改某個該函數(shù)所屬的對象,static不屬于任何對象

這里寫圖片描述

靜態(tài)成員之間的訪問

包括靜態(tài)成員函數(shù)訪問 靜態(tài)成員函數(shù),靜態(tài)數(shù)據(jù)成員。靜態(tài)成員不能訪問非靜態(tài)的成員函數(shù),不能訪問非靜態(tài)的成員數(shù)據(jù),

非靜態(tài)的成員函數(shù)可以任意的訪問靜態(tài)成員函數(shù) 和 靜態(tài)數(shù)據(jù)成員

由于沒有this指針的額外開銷,靜態(tài)成員函數(shù)與類的非靜態(tài)成員函數(shù)相比速度上會有少許的增長。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 荥阳市| 武汉市| 阿荣旗| 澄江县| 江都市| 红安县| 灵山县| 望奎县| 卓尼县| 吉水县| 绥化市| 澄江县| 东丽区| 无极县| 赤城县| 南投县| 奉贤区| 汪清县| 张掖市| 玛曲县| 上高县| 房产| 泗水县| 安陆市| 宁阳县| 彩票| 承德县| 赤城县| 江陵县| 武隆县| 元朗区| 长春市| 华容县| 北流市| 蒙阴县| 社会| 恩平市| 肥城市| 尚义县| 阿城市| 天长市|