C&C++   发布时间:2022-04-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了C++类的静态成员笔记大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

  下面是C++类的静态成员笔记。

静态数据成员特征

  用关键字static声明

  为该类的所有对象共享,静态数据成员具有静态生存期

  必须在类外定义和初始化,用(::)来指明所属的类

举例说明-具有静态数据成员的Point类

C++类的静态成员笔记

 代码示例:

 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) //构造函数
 9         {
10             count++;
11         }
12 
13         Point(Point &p)  //复制构造函数
14         {
15             x = p.x;
16             y = p.y;
17             count++;
18         }
19 
20         ~Point() //析构函数,在main函数return返回前调用
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: //私有数据成员
41         int x,y;
42         static int count;  //静态数据成员
43 };
44 
45 int Point::count = 0; //静态数据成员定义和初始化,使用类名限定
46 
47 int main(void)
48 {
49     Point a(4,5);
50     cout << "Point a: " << a.getX() << "," << a.getY();
51     a.showCount(); //输出对象个数
52 
53     Point b(a); //复制构造函数调用,定义对象b,其构造函数会使得count++
54     cout << "Point B:" << b.getX() << "," << b.getY();
55     b.showCount();
56 
57 
58     return 0;
59 }

运行结果:

1 Point a: 4,5Object count = 1

2 Point B:4,5Object count = 2 

静态函数成员特征

  类外代码可以使用类名和作用域操作符来调用静态成员函数

  静态成员函数主要用于处理该类的静态数据成员,可以直接调用静态成员函数

  如果访问非静态成员,要通过对象来访问

举例说明-具有静态数据/函数成员的Point类

C++类的静态成员笔记

 代码示例:

 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) //构造函数
 9         {
10             count++;
11         }
12 
13         Point(Point &p)  //复制构造函数
14         {
15             x = p.x;
16             y = p.y;
17             count++;
18         }
19 
20         ~Point() //析构函数,在main函数return返回前调用
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() //静态函数成员
36         {
37             cout << "Object count = " << count << endl;
38         }
39 
40     private: //私有数据成员
41         int x,y;
42         static int count;  //静态数据成员
43 };
44 
45 int Point::count = 0; //静态数据成员定义和初始化,使用类名限定
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(); //也可以输出对象个数
56 
57     Point b(a); //复制构造函数调用,定义对象b,其构造函数会使得count++
58     cout << "Point B:" << b.getX() << "," << b.getY();
59 
60     Point::showCount();
61     //b.showCount();//也可以输出对象个数
62 
63 
64     return 0;
65 }

运行结果:

1 Object count = 0

2 Point a: 4,5Object count = 1

3 Point B:4,5Object count = 2 

 

大佬总结

以上是大佬教程为你收集整理的C++类的静态成员笔记全部内容,希望文章能够帮你解决C++类的静态成员笔记所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: