16、C++ Primer 4th 筆記,static(靜態)類成員

來源:互聯網
上載者:User

1、static成員函數沒有this形參,它可以直接存取所屬類的static成員,但不能直接使用非static成員。

2、可以通過範圍操作符,對象,引用,指標來調用static成員。

3、在類外給static成員資料賦值,或定義成員函數時不必要再指定static。

4、因為 static 成員不是任何對象的組成部分,所以 static 成員函數不能被聲明為 const。畢竟,將成員函式宣告為 const 就是承諾不會修改該函數所屬的對象;也不能聲明為虛函數。

保證對象正好定義一次的最好辦法,就是將 static 資料成員的定義放在包含類非內聯成員函數定義的檔案中。

5、整型const static資料成員就可以在類的定義體中進行初始化。const static資料成員在類的定義體中初始化時,該資料成員仍必須在類的定義體之外進行定義。

6、static成員不是類對象的組合部分,屬於類;但是由給定類的全體對象所共用。static 資料成員的類型可以是該成員所屬的類類型。非 static 成員被限定聲明為其自身類對象的指標或引用。

7、每個標號為在該標號到下一個標號之間聲明的成員設定訪問保護。標號可以在類中出現多次。

8、const member function(常量成員函數),一種成員函數,不能改變對象的普通(即,既不是 static 也不是mutable)資料成員。const 成員中的 this 指標指向 const 對象。成員函數是否可以被重載取決於該函數是否為 const。

#include <iostream>using namespace std;class TestStatic{public:TestStatic(){cout << "In TestStatic" << endl;}static void output(){cout << "For a Test" << endl;cout << period << endl;}void output1() const{cout << "In output1" << endl;}void output1(){cout << "In output1" << endl;}static int testme;static const int period = 30;static TestStatic mem1;//TestStatic mem2; //errorTestStatic* mem3;};//const int TestStatic::period;int TestStatic::testme = 10;class TestStatic1: public TestStatic{public:TestStatic1(){cout << "In TestStatic1" << endl;}};int main(){TestStatic t1;cout << TestStatic::testme << endl;cout << t1.testme << endl;t1.output();TestStatic1 t2;cout << t2.testme << endl;t2.output();return 1;}

 9、通過公有的靜態成員函數訪問私人待用資料成員。

參考

[1] http://blog.163.com/zhoumhan_0351/blog/static/39954227201002621251123/

[2] http://blog.163.com/zhoumhan_0351/blog/static/3995422720103179552945/

相關文章

聯繫我們

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