作者在 2008-11-21 21:04:29 发布以下内容
静态成员函数可以直接访问该类的静态数据和函数成员。而访问非静态成员必须通过参数传递方式得到对象名,然后通过对象名来访问。
#include<iostream>
class point
{public:
point(int xx=0,int yy=0){X=xx;Y=yy;} //构造函数
point(point&p); //拷贝函数
~point(){countp--;} //析构函数
int getX(){return X;} //函数
int getY(){return Y;} //函数
static void getC(){cout<<"object id="<<countp<<endl;} //静态成员函数
private:
int X,Y; //私有成员
static int countp; //静态成员
};
point::point(point&p) //拷贝函数实现
{X=p.X;
Y=p.Y;
countp++;
}
int point::countp=0; //静态数据成员的定义及初始化
int main()
{point A(4,5); //对象
cout<<"point A,"<<A.getX()<<","<<A.getY();
A.getC();
point B(A); //要用到拷贝函数,用对象A初始化对象B
cout<<"point B,"<<B.getX()<<","<<B.getY();
point::getC(); //对静态成员函数直接调用,当然也可以用对象名调用
}