指向类的指向类的静态成员和静态函数成员的声明形式分别是什么?

书上两段指向类的指向类的静态成员和静态函数成员的程序分别如下:1、通过指针访问类的静态数据成员#include<iostream>usingnamespacestd;cl... 书上两段指向类的指向类的静态成员和静态函数成员的程序分别如下:
1、通过指针访问类的静态数据成员

#include <iostream>
using namespace std;
class Point
{
public:
Point(int xx=0,int yy=0) {X=xx;Y=yy;countP++;}
Point(Point&p);
int GetX() {return X;}
int GetY() {return Y;}

static int countP;

private:
int X,Y;
};

Point::Point(Point&p)
{
X=p.X;
Y=p.Y;
countP++;
}

int Point::countP=0; //静态数据成员定义性说明

int main()
{
int *count=&Point::countP; //声明一个int型指针,指向类的静态成员
Point A(4,5);
cout<<"Point A,"<<A.GetX()<<","<<A.GetY();
cout<<" Object id="<<*count<<endl;
Point B(A);
cout<<"Point B,"<<B.GetX()<<","<<B.GetY();
cout<<" Object id="<<*count<<endl;
}

2、通过指针访问类的静态函数成员
#include <iostream>
using namespace std;
class Point
{
public:
Point(int xx=0,int yy=0) {X=xx;Y=yy;countP++;}
Point(Point&p);
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()
{
void(*gc)()=Point::GetC; //声明一个指向函数的指针,指向类的静态成员函数
Point A(4,5);
cout<<"Point A,"<<A.GetX()<<","<<A.GetY();
gc();
Point B(A);
cout<<"Point B,"<<B.GetX()<<","<<B.GetY();
gc();
}

在主函数中声明指向类的静态成员的赋值使用了“&”符号,而指向类的成员函数时没有用到,请问两者声明的语法定义分别是什么?
展开
 我来答
澄晶亦炫
2008-10-22 · TA获得超过4430个赞
知道大有可为答主
回答量:9673
采纳率:25%
帮助的人:2842万
展开全部
和静态不静态,是不是主函数和类的内部没关系
指针的赋值都是一个地址,类的成员是一个int变量,&int是该变量的地址
而函数的地址,就是函数名
Storm代理
2023-08-29 广告
"StormProxies是全球大数据IP资源服务商,其住宅代理网络由真实的家庭住宅IP组成,可为企业或个人提供满足各种场景的代理产品。点击免费测试(注册即送1G流量)StormProxies有哪些优势?1、IP+端口提取形式,不限带宽,I... 点击进入详情页
本回答由Storm代理提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式