成員變量 局部變量 類變量

成員變量和局部變量的區別

? ? ? ?成員變量:

? ? ? ? ? 1、成員變量定義在類中,在整個類中都可以被訪問。

? ? ? ? ? 2、成員變量隨著對象的建立而建立,隨著對象的消失而消失,存在于對象所在的堆內存中。

? ? ? ? ??3、成員變量有默認初始化值。

? ? ? 局部變量:

? ? ? ? ? 1、局部變量只定義在局部范圍內,如:函數內,語句內等,只在所屬的區域有效。

? ? ? ? ? 2、局部變量存在于棧內存中,作用的范圍結束,變量空間會自動釋放。

? ? ? ? ? 3、局部變量沒有默認初始化值?

? ? ? 在使用變量時需要遵循的原則為:就近原則

? ? ? 首先在局部范圍找,有就使用;接著在成員位置找。

? ? ? ?由static修飾的變量稱為靜態變量,其實質上就是一個全局變量。如果某個內容是被所有對象所共享,那么該內容就應該用靜態修飾;沒有被靜態修飾的內容,其實是屬于對象的 ?特殊描述。

成員變量和靜態變量的區別:

?? 1、成員變量所屬于對象。所以也稱為實例變量。

????? 靜態變量所屬于類。所以也稱為類變量。

?? 2、成員變量存在于堆內存中。

????? 靜態變量存在于方法區中。

?? 3、成員變量隨著對象創建而存在。隨著對象被回收而消失。

????? 靜態變量隨著類的加載而存在。隨著類的消失而消失。

?? 4、成員變量只能被對象所調用?。

????? 靜態變量可以被對象調用,也可以被類名調用。

?? 所以,成員變量可以稱為對象的特有數據,靜態變量稱為對象的共享數據。

成員分兩種:

?? 1、成員變量。(數據共享時靜態化)

????? 該成員變量的數據是否是所有對象都一樣:

????? 如果是,那么該變量需要被靜態修飾,因為是共享的數據。?

????? 如果不是,那么就說這是對象的特有數據,要存儲到對象中。?

?? 2、成員函數。(方法中沒有調用特有數據時就定義成靜態)

????? 如果判斷成員函數是否需要被靜態修飾呢?

????? 只要參考,該函數內是否訪問了對象中的特有數據:

????? 如果有訪問特有數據,那方法不能被靜態修飾。

????? 如果沒有訪問過特有數據,那么這個方法需要被靜態修飾。

轉載于:https://www.cnblogs.com/wangzhiming/p/6754668.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/254786.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/254786.shtml
英文地址,請注明出處:http://en.pswp.cn/news/254786.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

從DevOps到Cloud Native,應用上云姿勢全解鎖

本文由網易云 發布作者:林帆序文伴隨著IaaS、PaaS等云端基礎設施技術的成熟,“應用上云”成為許多企業軟件部門的心頭大事。通過把傳統軟件系統搬到云上,一方面可以讓業務方獲得更多的資源靈活性,另一方面也可以緩解運營方的成本壓…

foreach

foreach 遍歷數組內每個元素,迭代一次執行一次循環語句。 相當于增前后的for循環

深入理解C++對象模型-對象的內存布局,vptr,vtable

vtpr的位置: 為了支持多態,C引入了vtpr和vtable這兩個概念.對于每個有虛函數的類,C都會為其生成一個vtable,并在類中添加一個隱含的數據成員vptr. 對于vptr在對象中的位置,跟類的數據成員的布局一樣,C標準里面并沒有做出任何的規定.但是對于特定的編譯器,我們還是可以通…

Visual Studio Code 常用插件整理

常用插件說明: 一、HTML Snippets 超級使用且初級的H5代碼片段以及提示 二、HTML CSS Support 讓HTML標簽上寫class智能提示當前項目所支持的樣式 三、Debugger for Chrome 讓vscode映射chrome的debug功能,靜態頁面都可以用vscode來打斷點調試、配飾稍…

sublime 正則搜索日語字符

sublime 正則搜索日語字符 [\x{3041}-\x{3096}\x{30A0}-\x{30FF}\x{3400}-\x{4DB5}\x{4E00}-\x{9FCB}\x{F900}-\x{FA6A}\x{2E80}-\x{2FD5}\x{FF5F}-\x{FF9F}\x{3000}-\x{303F}\x{31F0}-\x{31FF}\x{3220}-\x{3243}\x{3280}-\x{337F}\x{FF01}-\x{FF5E}] 參考: http://www.localiz…

函數域中申請堆空間出函數后不會自動釋放

#include<iostream> using std::cout; using std::endl; char *scat(char *s1,char *s2) { char *snew char[strlen(s1)strlen(s2)1]; strcpy(s,s1); strcat(s,s2); return s;//返回剛申請的堆空間的首址&#xff0c;出了函數后變量s就不復存在了&#xff0c;但申請的…

/home文件夾重新劃分獨立分區

1. 備份home文件夾&#xff0c;數據丟失的時候可以使用cp -av /home/* /data/2. 磁盤分區2.1 虛擬機中添加磁盤并讓系統識別&#xff0c;使用# echo - - - >> /sys/class/scsi_host/host0/scan# echo - - - >> /sys/class/scsi_host/host1/scan# echo - - - >…

使用halcon將一個圓上的點擬合成圓形并且求出圓心

我們在自動化貼裝機標定過程中&#xff0c;需要計算吸頭的旋轉中心位置。我們一般使用的方法是使用模板匹配&#xff0c;做一個模板&#xff0c;吸頭旋轉一個角度尋找模板一次&#xff0c;通過多次旋轉求取吸頭的旋轉中心。 使用halcon實現 public bool FitCircle(double[] X…

This 指針

如果你期望衍生類別重新定義一個成員函數&#xff0c;那么你應該在基礎類別中把此函數設為 virtual。 以單一指令喚起不同函數&#xff0c;這種性質稱為Polymorphism&#xff0c;意思是"the ability toassume many forms"&#xff0c;也就是多態。 虛擬函…

史上最全亞歷山大大帝名言

&#xff08;1&#xff09;把財富分給他人&#xff0c;把希望留給自己&#xff0c;他將帶給我無窮的財富。——亞歷山大大帝 &#xff08;2&#xff09;山不走到我這里來&#xff0c;我就走到他那里去。——亞歷山大大帝 &#xff08;3&#xff09;能夠戰勝恐懼就能戰勝死亡。—…

jdbcmysql

做java開發難免會用到數據庫,操作數據庫也是java開發的核心技術。那我們現在就來談談javajdbc來操作mysql數據庫吧 第一步&#xff1a;我們需要把mysql的驅動引進來這里引驅動就是把mysql-connector-java-5.1.37-bin.jar加到項目中來&#xff0c;下面附jar包 第二步&#xff1a…

char **p, char a[16][8]; 問:p=a 是否會導致程序在以后出現問題?為什么?

int (*v)[10]; 在 Visual C 里面不能與 int **v 等同起來。 舉個例子&#xff1a; int **p; int (*v)[10]; int a[10][10]; 如果寫 v a 是可以的。 如果寫 p a 將會引起一個類型不匹配的編譯錯誤。 二級指針&#xff08;int **p&#xff09;需要自己指向一個一級指針&#x…

draw_circle_mod預生成交互式圓形

目錄draw_circle_mod&#xff08;算子&#xff09;描述參數draw_circle_mod&#xff08;算子&#xff09; draw_circle_mod - 圓的交互式繪圖。 draw_circle_mod&#xff08;:: WindowHandle&#xff0c;RowIn&#xff0c;ColumnIn&#xff0c;RadiusIn&#xff1a;Row&#…

川崎機器人c#通訊(轉)

由于本人在工業自動化行業做機器視覺的工作&#xff0c;所以除了圖像處理方面要掌握外&#xff0c;還需要與工業機器人進行通信。最近學習了計算機與川崎機器人的TCP/IP通信&#xff0c;于是在這里記錄一下。 除了直接與機器人通信外&#xff0c;有一種方式是通過PLC間接通信&a…

模板類 Template Classes 以及模板類編譯時的處理

&#xfeff;&#xfeff;我們可以建立template classes&#xff0c;使它們能夠神奇地操作任何類型的資料。下面這個例子是讓CThree 類別儲存三個成員變量&#xff0c;成員函數Min 傳回其中的最小值&#xff0c;成員函數Max 則傳回其中的最大值。我們把它設計為template class&…

行轉列及列轉行查詢

開發過程中常遇到行轉列或是列轉行的問題&#xff0c;即需要將數據庫中一張表信息進行行轉列操作&#xff0c;再將每列&#xff08;即每個字段&#xff09;作為與其他表進行聯表查詢的字段進行顯示。 一、行轉列&#xff1a;將原來同一列下多行的不同內容作為多個字段&#xff…

移動端系列講解之字體單位

移動端字體單位有哪些&#xff1f;他們的兼容性如何&#xff1f;他們的特點&#xff1f;1.移動端字體單位現在主要有 em 、rem 、px 2.兼容性請傳送點擊這里 em: em是相對長度單位。相對于父元素設置的字體大小。em相對于當前對象內文本的字體尺寸。如當前對行內文本的字體尺寸…

x264_param_t參數注解

typedef struct x264_param_t { CPU 標志位 unsigned int cpu; int i_threads; 并行編碼多幀 int b_deterministic; 是否允許非確定性時線程優化 int i_sync_lookahead; 線程超前緩沖 視頻屬性 int i_width; 寬度 int i_height; 高…

gen_circle_contour_xld創建圓或圓弧的XLD輪廓

目錄gen_circle_contour_xld&#xff08;算子&#xff09;描述參數gen_circle_contour_xld&#xff08;算子&#xff09; gen_circle_contour_xld - 創建圓或圓弧的XLD輪廓。 gen_circle_contour_xld&#xff08;&#xff1a;ContCircle&#xff1a;Row&#xff0c;Column&am…

一、Java語言基礎(4)_方法和數組——數組

2018-04-25 不悔夢歸處&#xff0c;只恨未盡心 數組 一、一維數組 數組的含義&#xff1a;具有相同類型的多個變量按有序形式組織起來的數據形式。&#xff08;數組是用來存儲固定大小的同類型元素。&#xff09;數組的定義&#xff1a;方式1&#xff08;推薦使用&#xff09;&…