首页 > 试题广场 >

下列程序的运行结果是( ) #in...

[单选题]
下列程序的运行结果是()
#include <iostream>
#include <cmath>
using namespace std;
class Point {
public:
    Point(int X=0, int Y=0);
    Point(Point &p);
    int GetX() {return X;}
    int GetY() {return Y;}
    static int countP;
    static void GetC(Point A,Point B) {
        int  z;
        z=sqrt((B.X-A.X)*(B.X-A.X)+(B.Y-A.Y)*(B.Y-A.Y));
        cout<<z<<endl;}
private:
    int X,Y;
};

Point::Point(int X, int Y)  {
    this->X=X;
    this->Y=Y;
    countP++;
}

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

int main() {
    Point D(3,4), *p;
    Point E(D);
    p = &E;

    void (*q)(Point,Point) = Point::GetC;
    (*q)(D, E);
    return 0;
}
  • 2
  • 0
  • 3
  • 4
认真做完之后,感觉被侮辱了智商
发表于 2020-08-31 19:00:28 回复(4)
这是C++吧,我不是在做C语言专项练习吗?
发表于 2021-01-11 14:45:35 回复(1)

就是求两点距离,那个countP就是个干扰,都没用上,输出的就是两点距离,而他的两点都是同一点,所以距离为0

发表于 2019-10-22 17:18:44 回复(0)
void (*q)(Point,Point) = Point::GetC; 
定义了一个函数指针q,q指向的是Point类的静态成员函数
发表于 2022-09-13 18:38:48 回复(0)
countP没用,就是复制产生了两个值一模一样的对象实现方法,求出为0。
发表于 2018-12-21 18:16:17 回复(0)
void (*q)(Point,Point)=Point::GetC; 
这段语句没看懂,
而且*q是哪儿来的?
求解
发表于 2021-01-23 21:37:12 回复(3)
这里的Point E(D)是有参构造,所以值是一样的,算出来两点距离为0.
发表于 2022-03-04 19:22:44 回复(0)
写了一大串无关代码
发表于 2021-10-26 15:38:02 回复(0)
看来看去,一大堆东西,就是两个点距离计算,并且这里两点重合了,所以0喽
发表于 2021-03-15 16:33:51 回复(0)
√ ̄0是什么鬼?????
发表于 2019-09-10 10:00:17 回复(0)