static和const關鍵字儘可能多的作用 (C/C++)

來源:互聯網
上載者:User

static關鍵字至少有下列n個作用:
  (1)函數體內static變數的作用範圍為該函數體,不同於auto變數,該變數的記憶體只被分配一次,因此其值在下次調用時仍維持上次的值;
  (2)在模組內的static全域變數可以被模組內所用函數訪問,但不能被模組外其它函數訪問;
  (3)在模組內的static函數只可被這一模組內的其它函數調用,這個函數的使用範圍被限制在聲明它的模組內;
  (4)在類中的static成員變數屬於整個類所擁有,對類的所有對象只有一份拷貝;
  (5)在類中的static成員函數屬於整個類所擁有,這個函數不接收this指標,因而只能訪問類的static成員變數。
  const關鍵字至少有下列n個作用:
  (1)欲阻止一個變數被改變,可以使用const關鍵字。在定義該const變數時,通常需要對它進行初始化,因為以後就沒有機會再去改變它了;
  (2)對指標來說,可以指定指標本身為const,也可以指定指標所指的資料為const,或二者同時指定為const;
  (3)在一個函式宣告中,const可以修飾形參,表明它是一個輸入參數,在函數內部不能改變其值;
  (4)對於類的成員函數,若指定其為const類型,則表明其是一個常函數,不能修改類的成員變數;
  (5)對於類的成員函數,有時候必須指定其傳回值為const類型,以使得其傳回值不為"左值"。例如:
const classA operator*(const classA& a1,const classA& a2);
  operator*的返回結果必須是一個const對象。如果不是,這樣的變態代碼也不會編譯出錯:
classA a, b, c;
(a * b) = c; // 對a*b的結果賦值
  操作(a * b) = c顯然不符合編程者的初衷,也沒有任何意義。

 

本文來自CSDN部落格,轉載請標明出處:http://blog.csdn.net/xiao_maijia/archive/2009/12/29/5102282.aspx

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.