类的表态成员主要分为类的静态数据成员和类的静态函数成员。 1、类的静态数据成员 假如我们定义一个学生类的同时要对学生的人数进行统计,定义变量count.很显然,该变量不能话在类外面,这样就隐藏性不好。同时也不能在类中增加cout数据成员,因为这样一个副本过多,造成浪费,另外不同学生对象间的count数据可能不一至。这样我们就要用到类的静态数据成员了,只有一个副本,所有类对象共同维护和使用。如下示例:#include<iostream> using namespace std; class Student { public: Student(inti); intGetCount() {returncount;} private: intid; staticint count; //类静态数据成员 }; Student::Student(int i) { id=i; count++; } int Student::count=0; //静态数据成员的定义性说明和初始化 int main() { StudentA(1); StudentB(2); cout<<B.GetCount()<<endl;//输出结果为2 return0; }
2、类的静态函数成员
上面代码中我们用GetCount函数接口输出count值。这里有一个问题,如果我们没有定义对象,但count还是有初始值的,那我们应该如何访问?
我们知道,没有定义对象,是无法调用GetCount函数的。同时count变量是私有的,故也不能通过类名直接引用。这时我们就需要用到为的静态函数成员了。
静态成员函数可以访问该类的静态数据成员和其他静态成员函数,如果要访问非静态数据成员,必须用对象作为参数来访问。#include<iostream> using namespace std; class Student { public: Student(inti); staticvoid GetCount() {cout<<count<<endl;} private: intid; staticint count; //类静态数据成员 }; Student::Student(int i) { id=i; count++; } int Student::count=2; //初始化为2 int main() { StudentA(1); StudentB(2); Student::GetCount();//静态成员的好处是只有一份拷贝,可以通过类名直接访问 return0; }
二十一、C++程序设计必知:类的静态成员
最新推荐文章于 2020-10-28 12:07:22 发布
本文深入探讨了类的静态数据成员和静态函数成员的概念与应用,通过实例展示了它们在类设计中的作用及特点,包括如何在不创建对象的情况下访问静态数据成员,以及静态函数成员的优势。
4675

被折叠的 条评论
为什么被折叠?



