📜  C ++ |静态关键字|问题1

📅  最后修改于: 2021-06-01 03:02:24             🧑  作者: Mango

预测以下C++程序的输出。

#include 
using namespace std;
  
class Test
{
    static int x;
public:
    Test() { x++; }
    static int getX() {return x;}
};
  
int Test::x = 0;
  
int main()
{
    cout << Test::getX() << " ";
    Test t[5];
    cout << Test::getX();
}

(A) 0 0
(B) 5 5
(C) 0 5
(D)编译器错误答案: (C)
说明:可以在没有任何对象的情况下调用静态函数。因此,调用“ Test :: getX()”就可以了。

由于x初始化为0,因此对getX()的第一次调用返回0。请注意,构造函数中的语句x ++。当创建一个由5个对象组成的数组时,构造函数将被调用5次。因此,在下一次调用getX()之前,x会增加到5。
这个问题的测验

想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。