C/C++中的const ,static

來源:互聯網
上載者:User

標籤:mutable   static   無法建立   不能   結束   ati   關鍵字   調用   類對象   

一、const

  在C++中:

  1、常對象:建立對象時添加const關鍵字,這個對象就不可以再修改,就有了常屬性,就意味著整個對象所有變數不能更改

  2、常對象不能調用普通函數,調用成員函數就相當於把對象的this指標給了他,就有被修改的風險

  3、常對象只能調用常函數(函數體前加關鍵字叫常函數),普通對象也能調用常函數,常函數就相當於對this指標添加了const屬性

  4、常函數與普通函數可以構成重載,不會衝突

  5、如果有成員確實需要修改,他又被const修飾,可以對成員添加一個關鍵字mutable,這樣即使是常對象調用了常函數依然可以修改成員

  C:

    const :常量,為變數儲存添加一種保護,保護變數不能被顯示修改,提高程式的安全性,當程式沒必要修改參數值時,應該加const屬性;
    const 可以定義常量,const修改初始化過的全域變數就是常量;

二、static

  C++:靜態成員與靜態成員函數

    1、類成員被static修飾,就會儲存在bss段(此段是由編譯器存放的而且大小是固定的),在程式中動態建立對象時它的靜態成員就無法建立,所有的類對象就共用一個靜態成員

    2、靜態成員只能在類中聲明不能在類中定義(必須在類外定義)  類型  類名::靜態成員名

    3、靜態成員就是聲明在類中的全域變數,在任何位置都可以使用  類名::靜態成員名 進行訪問

    4、靜態成員函數:類中的成員函數被static修飾後就變成靜態成員函數,所有成員共用一份靜態成員函數

    5、靜態成員函數不會傳遞this指標,不通過對象也能調用靜態成員函數 類名::靜態成員函數(參數)

  C:

    static 
      修飾全域變數時,範圍會從整個程式變為他所在的.c檔案內;
      1、靜態局部,塊:
        儲存位置會由棧改為靜態段;生命週期會改為從定義開始到程式結束;但是使用範圍不變;預設值為0;只能初始化一次;

    靜態函數:
      static int func(int num);
      static會把外部函數變為記憶體函數,只能在他所在的.c檔案內;

      static修飾全域變數和函數的好處,可以防治與其他函數,變數重名衝突

C/C++中的const ,static

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.