问题 单项选择题

有下列程序:
#include<iostream>
using namespace std;
classTest
public:
Test() n+=2;
~Test() n-=3;
static int getNum()return n;
private:
static int n;
;
int Test::n=1;
int main()

Test*p=new Test;
delete p;
cout<<"n="<<Test::getNum()<<endl;
retum 0;

执行后的输出结果是( )。

A.n=0

B.n=l

C.n=2

D.n=3

答案

参考答案:A

解析: 语句Test*p=new Test;会调用类的构造函数Test() {n+=2;},使n的值由原来的1变为3,然后delete p调用类的析构函数~Test() {n-=3;},因为n是static型变量,所以会在3的基础上减3使得输出结果为0。

选择题
单项选择题