首页 > 试题广场 >

下列程序的运行结果是13,请为横线处选择合适的程序()

[单选题]
下列程序的运行结果是13,请为横线处选择合适的程序()
#include <iostream>
#include <cmath>
using namespace std;
class A {
public:
    A(int X = 0, int Y = 0);
    A(A &p);
    ~A();
    int GetX() { return X; }
    int GetY() { return Y; }
    static int countP;
private:
    int X, Y;
};
A::A(int X, int Y) {
    this->X = X;
    this->Y = Y;
}
A::A(A &p) {
    X = p.X;
    Y = p.Y;
}
A::~A() {
    countP--;
}
int A::countP = 0;
int main() {
    A D(3, 4), *p;
    int *count = &A::countP;
    cout << *count;
    A E(D);
    p = &E;
    _____ = A::GetX;
    cout << (p->*j)() << endl;
    return 0;
}
  • int(*j )
  • int *j
  • int(A::*j)()
  • int(A::*j)
我想问下GETX不是static,为什么可以这么用A::GETX
发表于 2018-07-11 15:32:13 回复(1)
此题考的就是一个函数指针的声明,函数指针的声明格式为:函数反回类型(指针)(参数列表)。此题代码值得学习,涉及到了拷贝构造函数
编辑于 2018-04-12 12:54:24 回复(0)
主要是横线后面的一句是关键:p->*j说明*j是A的成员变量,后面还带了(),说明是函数。
发表于 2017-10-21 11:36:14 回复(1)
横线在哪呢,我怎么没有找到!!
发表于 2022-03-13 17:20:28 回复(2)
首先A::GetX前要加&,其次这道题输出结果为03
发表于 2022-05-19 10:43:31 回复(2)
j是一个成员函数指针,A::getX返回的是A类内部成员函数getX的地址,将这个地址赋值给j,j也就指向了A类内部的getX(),
A类的指针p通过->*调用了j,也就是调用getX(),E的x的值为3,所以第二个输出是3
发表于 2020-04-10 17:54:20 回复(0)
定义指向公用成员函数的指针变量一般形式如下 数据类型名 (类名::*指针变量名)(参数列表) 让它指向一个公用成员函数,只须把公用成员的函数的入口地址赋给指向公用成员函数的指针变量即可 如p2=&Time::getime;
发表于 2019-12-19 16:04:50 回复(0)
恕我直言,vs里面代码里面要加&:int (A::*j)()=&A::GetX;
发表于 2020-10-01 16:15:02 回复(0)
我还以为怎么会有个13,合着是打一个1 打一个3.。。。。。。。 
发表于 2019-03-28 16:31:36 回复(3)
横线在哪?
发表于 2022-03-13 21:03:34 回复(0)
为什么我把这串代码在vs2013跑了一下后显示函数调用缺少参数列表?

发表于 2019-01-28 23:35:26 回复(2)

关于函数指针,对于非静态成员函数必须加取地址运算符&,静态成员函数和普通函数不需要。
因为cppreference中有如下声明:
函数类型 T 的左值能隐式转换成指向该函数的指针纯右值。这不作用于非静态成员函数,因为不存在指代非静态成员函数的左值。

另外两个构造函数中都需要加上countP++

发表于 2023-11-17 10:49:30 回复(0)
构造函数里哪里写了countP++,创建对象时countP没变啊?

发表于 2023-11-07 10:05:15 回复(0)
工作时候其他人写这种代码看的真头疼啊
发表于 2023-08-13 18:09:17 回复(0)
countp--应该改成countp++;并且打印结果应该在拷贝构造函数之后,这样有一次形参析构,会使它变成1
发表于 2023-08-04 17:10:39 回复(0)
第一个是0
发表于 2023-05-17 19:54:23 回复(3)
标记
发表于 2023-03-06 09:03:40 回复(0)
好奇,第一个打印不该是0吗
发表于 2022-11-25 22:32:59 回复(2)
有知道输入结果是13的吗?
发表于 2022-10-16 18:52:31 回复(0)
求求了,牛客网的技术部门该上班了,垃圾题目!!!
发表于 2022-09-01 23:37:18 回复(0)