可以使用static关键字定义C ++中类的静态成员。内存中只有静态类成员的一个副本,而不管该类的对象数目如何。因此,静态成员由所有类对象共享。
如果没有以任何其他方式初始化该类的第一个对象,则在创建该类的第一个对象时,该静态类成员将初始化为零。
演示静态类成员定义的程序如下:
#include <iostream> using namespace std; class Point{ int x; int y; public: static int count; Point(int x1, int y1){ x = x1; y = y1; count++; } void display(){ cout<<"The point is ("<<x<<","<<y<<")\n"; } }; int Point::count = 0; int main(void){ Point p1(10,5); Point p2(7,9); Point p3(1,2); p1.display(); p2.display(); p3.display(); cout<<"\nThe number of objects are: "<<Point::count; return 0; }
上面程序的输出如下-
The point is (10,5) The point is (7,9) The point is (1,2) The number of objects are: 3
现在让我们了解上面的程序。
Point类具有2个构成点的数据成员x和y。还有一个静态成员计数,用于监视Point类创建的对象数。构造函数Point()
初始化x和y的值,然后函数display()
显示它们的值。显示此的代码段如下-
class Point{ int x; int y; public: static int count; Point(int x1, int y1){ x = x1; y = y1; count++; } void display(){ cout<<"The point is ("<<x<<","<<y<<")\n"; } };
在该函数中main()
,创建了3个Point类的对象。然后通过调用函数显示这些对象的值display()
。然后显示计数值。显示此的代码段如下-
Point p1(10,5); Point p2(7,9); Point p3(1,2); p1.display(); p2.display(); p3.display(); cout<<"\nThe number of objects are: "<<Point::count;