#include<iostream>
using namespace std;
class Point{
public:
Point(int x = 0, int y = 0):x(x),y(y){//构造函数
count ++;//在构造函数中对count累加,所有对象共同维护一个count
}
Point(Point &p){//复制构造函数
x = p.x;
y = p.y;
count ++;
}
~Point(){
count --;
}
int GetX(){ return x;
}
int GetY(){ return y;
}
void ShowCount(){ //输出静态数据成员
cout << "Object count="<<count<<endl;
}
private:
int x,y;
static int count;//静态数据成员声明,用于记录点的个数
};
int Point::count = 0;//静态数据成员的定义和初始化,使用类名限定
int main (){
Point p(4,5); //定义对象p,其构造函数会使count增1
cout<<"Point p "<<p.GetX()<<","<<p.GetY()<<endl;
p.ShowCount(); //输出对象个数
Point b(p); //运用复制构造函数定义对象b,其构造函数会使count增1
cout<<"Point b "<<b.GetX()<<","<<b.GetY()<<endl;
b.ShowCount(); //输出对象个数
return 0;
}
c++类的静态成员举例
最新推荐文章于 2025-05-20 09:20:28 发布