c++ 引用和static理解

引用:
1、引用是申明一種關係不是定義一個變量,所以不開闢空間。不單獨存在必須要初始化指向某個東西。他是一個別名和指向的對象一樣的實體,不是一個指針,所以不能按照指針 ->的方式訪問,而是按照.xxx的方式訪問。
2、當函數參數傳遞引用時候,就相當於說把傳遞參數的變量的作用域增加了,增加到了調用函數內部了。
3、引用其實是一個常量指針類似:int *p ->修飾成常量指針就變成了int * const p這樣一樣, 所以他要一開始就指向別人,而且不能改變。所以實際上他其實是有空間的,至少佔用一個指針的空間。其實應用的本質就是指針。

Static:
static在C語言彙總重要修飾變量的作用域(文件內與有效)和存儲位置 (靜態變量區)。在C++中,static可以修飾成員變量+成員函數
1、修飾成員變量時候,起到了多個類對象之間的數據的共享。這個static成員變量部署那個對象實例而是數據這個類(相當於這個static變量數據這個類的命名空間),所以需要在類外面通過類的作用域比如int A::a = xxx方式類線初始化纔行。不佔用類的空間,存放在靜態區存儲的。
2、當static修飾成員函數時候,因爲該函數不屬於某個對象,所以在函數中沒有隱含this指針了,所以不能在函數中向其他成員函數一樣訪問到累的非static成員。而智能訪問static修飾的成員,這樣就達到了協調對象之間共享數據的協調了。其實static函數的作用就是類用來提供給外面人用,在沒有對象時候也可以通過該接口來訪問類中定義的共享數據(static修飾的變量)。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章