在C ++中定义静态成员

可以使用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;