久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

C++類的靜態(tài)成員筆記

 丹楓無跡 2021-05-01

  下面是C++類的靜態(tài)成員筆記,。

靜態(tài)數(shù)據(jù)成員特征

  用關(guān)鍵字static聲明

  為該類的所有對象共享,靜態(tài)數(shù)據(jù)成員具有靜態(tài)生存期

  必須在類外定義和初始化,,用(::)來指明所屬的類

舉例說明-具有靜態(tài)數(shù)據(jù)成員的Point類

 代碼示例:

 1 #include<iostream>
 2 
 3 using namespace std;
 4 
 5 class Point  //Point類定義
 6 {
 7     public: //外部接口
 8         Point(int x = 0, int y = 0):x(x), y(y) //構(gòu)造函數(shù)
 9         {
10             count++;
11         }
12 
13         Point(Point &p)  //復(fù)制構(gòu)造函數(shù)
14         {
15             x = p.x;
16             y = p.y;
17             count++;
18         }
19 
20         ~Point() //析構(gòu)函數(shù),在main函數(shù)return返回前調(diào)用
21         {
22             count--;
23         }
24 
25         int getX()
26         {
27             return x;
28         }
29 
30         int getY()
31         {
32             return y;
33         }
34 
35         void showCount()
36         {
37             cout << "Object count = " << count << endl;
38         }
39 
40     private: //私有數(shù)據(jù)成員
41         int x,y;
42         static int count;  //靜態(tài)數(shù)據(jù)成員
43 };
44 
45 int Point::count = 0; //靜態(tài)數(shù)據(jù)成員定義和初始化,,使用類名限定
46 
47 int main(void)
48 {
49     Point a(4,5);
50     cout << "Point A: " << a.getX() << "," << a.getY();
51     a.showCount(); //輸出對象個數(shù)
52 
53     Point b(a); //復(fù)制構(gòu)造函數(shù)調(diào)用,定義對象b,,其構(gòu)造函數(shù)會使得count++
54     cout << "Point B:" << b.getX() << "," << b.getY();
55     b.showCount();
56 
57 
58     return 0;
59 }

運(yùn)行結(jié)果:

1 Point A: 4,5Object count = 1

2 Point B:4,5Object count = 2 

靜態(tài)函數(shù)成員特征

  類外代碼可以使用類名和作用域操作符來調(diào)用靜態(tài)成員函數(shù)

  靜態(tài)成員函數(shù)主要用于處理該類的靜態(tài)數(shù)據(jù)成員,,可以直接調(diào)用靜態(tài)成員函數(shù)

  如果訪問非靜態(tài)成員,要通過對象來訪問

舉例說明-具有靜態(tài)數(shù)據(jù)/函數(shù)成員的Point類

 代碼示例:

 1 #include<iostream>
 2 
 3 using namespace std;
 4 
 5 class Point  //Point類定義
 6 {
 7     public: //外部接口
 8         Point(int x = 0, int y = 0):x(x), y(y) //構(gòu)造函數(shù)
 9         {
10             count++;
11         }
12 
13         Point(Point &p)  //復(fù)制構(gòu)造函數(shù)
14         {
15             x = p.x;
16             y = p.y;
17             count++;
18         }
19 
20         ~Point() //析構(gòu)函數(shù),,在main函數(shù)return返回前調(diào)用
21         {
22             count--;
23         }
24 
25         int getX()
26         {
27             return x;
28         }
29 
30         int getY()
31         {
32             return y;
33         }
34 
35         static void showCount() //靜態(tài)函數(shù)成員
36         {
37             cout << "Object count = " << count << endl;
38         }
39 
40     private: //私有數(shù)據(jù)成員
41         int x,y;
42         static int count;  //靜態(tài)數(shù)據(jù)成員
43 };
44 
45 int Point::count = 0; //靜態(tài)數(shù)據(jù)成員定義和初始化,使用類名限定
46 
47 int main(void)
48 {
49     Point::showCount();
50 
51     Point a(4,5);
52     cout << "Point A: " << a.getX() << "," << a.getY();
53 
54     Point::showCount();
55     //a.showCount(); //也可以輸出對象個數(shù)
56 
57     Point b(a); //復(fù)制構(gòu)造函數(shù)調(diào)用,,定義對象b,其構(gòu)造函數(shù)會使得count++
58     cout << "Point B:" << b.getX() << "," << b.getY();
59 
60     Point::showCount();
61     //b.showCount();//也可以輸出對象個數(shù)
62 
63 
64     return 0;
65 }

運(yùn)行結(jié)果:

1 Object count = 0

2 Point A: 4,5Object count = 1

3 Point B:4,5Object count = 2 

 

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多