静态数据成员的使用
#include<iostream>
#include<cmath>
using namespace std;
class Point {
public:
Point(int xx = 0, int yy = 0);
Point(Point& p);
~Point() {
count--;
}
int getx();
int gety();
void showCount();
private:
int x, y;
static int count;//静态数据成员一般用法:类名::标识符(引用性说明)
};
Point::Point(int xx, int yy)
{
x = xx;
y = yy;
count++;
}
Point::Point(Point& p)
{
x = p.x;
y = p.y;
count++;
//cout << "Calling the copy constructor of Point" << endl;
}
int Point::getx()
{
return x;
}
int Point::gety()
{
return y;
}
void Point::showCount()
{
cout << "Object count=" << count << endl;
}
int Point::count = 0;(初始化定义性声明)
int main()
{
//Point::showCount();
Point a(4, 5);
cout << "Point A:" << a.getx() << "," << a.gety() << endl;;
a.showCount();
Point b(a);
cout << "Point B:" << b.getx() << "," << b.gety() << endl;;
b.showCount();
return 0;
}
静态函数使用
#include<iostream>
#include<cmath>
using namespace std;
class Point {
public:
Point(int xx = 0, int yy = 0);
Point(Point& p);
~Point() {
count--;
}
int getx();
int gety();
static void showCount();//静态函数成员用法:一般通过类名来调用
private:
int x, y;
static int count;//静态数据成员
};
Point::Point(int xx, int yy)
{
x = xx;
y = yy;
count++;
}
Point::Point(Point& p)
{
x = p.x;
y = p.y;
count++;
//cout << "Calling the copy constructor of Point" << endl;
}
int Point::getx()
{
return x;
}
int Point::gety()
{
return y;
}
void Point::showCount()
{
cout << "Object count=" << count << endl;
}
int Point::count = 0;
int main()
{
Point a(4, 5);
cout << "Point A:" << a.getx() << "," << a.gety() << endl;;
Point::showCount();//静态函数的调用
Point b(a);
cout << "Point B:" << b.getx() << "," << b.gety() << endl;;
Point::showCount();
return 0;
}