在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;