代码如下:
#include<iosteam>
class M
{
public:
M(int a)
{
A = a;
B+=a;//这里每调用一次构造函数不就重新刷新一次B了吗?用这种方法记录生成对象的个数??
}
static void f1(M m);
private:
int A;
static int B;
};
void M::f1(M m)
{
cout<<"A="<<m.A;//在静态成员函数中,只能通过对象访问类的非静态成员
cout<<"B="<<B;//B是静态成员,可以在静态成员函数中访问
}
int M::B=0;//一直不明白这里的B不是私有的吗?为什么可以直接访问?是因为这句话没有在任何函数中吗?
void main()
{
M P(5), Q(10);
M::f1(P);
//访问静态成员函数,前面可以用类名或者对象名,下同
M::f1(Q);
}