首页 / C++ / C++类的静态成员笔记
C++类的静态成员笔记
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了C++类的静态成员笔记,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3232字,纯文字阅读大概需要5分钟。
内容图文
![C++类的静态成员笔记](/upload/InfoBanner/zyjiaocheng/604/978c3e5ac81947b790b0601853f3f69e.jpg)
下面是C++类的静态成员笔记。
静态数据成员特征
用关键字static声明
为该类的所有对象共享,静态数据成员具有静态生存期
必须在类外定义和初始化,用(::)来指明所属的类
举例说明-具有静态数据成员的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) //构造函数 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类
代码示例:
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++类的静态成员笔记所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。