单选题 有如下程序:
#include <iostream>
using namespace std:
class Test
{
public:
Test() {n+=2;
~Test() {n-=3; ;
static int getNum() {return n;}
privaue:
static int n:
};
int Test::n=1;
int main()
{
Test* p=new Test;
delete p;
cout<<"n="<<Test::getNum()<<end1;
return 0;
}
执行后的输出结果是
  • A. n=0
  • B. n=1
  • C. n=2
  • D. n=3
【正确答案】 A
【答案解析】[解析] 本题考核静态数据成员与静态成员函数的定义与使用方式。静态数据成员是类中所有对象共享的成员,而不是某个对象的成员.题中变量n是静态数据成员,对象对其操作的结果具有叠加作用,main函数中先定义了Test的对象*p,然后又delete p,所以对静态数据n进行了两次操作,分别是“n+=2”和“n-=3”,n的初始值是1,那么n最后的值变为0。main函数最后通过调用静态函数getNum得到n的值,并输出。