问题 单项选择题

有如下程序:
#include <iostream>
using namespaee std;
class Point
public:
static int number;
Point( )number++;
~Point( )number--;

int Point::number=0;
void main( )
Point*ptr;
Point A,B;
Point*ptr_point=new Point[3];
ptr=ptr_point;
Point C;
cout<<Point::number<<endl;
delete[ ]ptr;

程序的输出结果是

A.3

B.4

C.6

D.7

答案

参考答案:C

解析: 只有在创建对象时才会调用类的构造函数,在定义指针时不会调用构造函数,只有给指针new一个地址时会调用构造函数,所以本程序中一共生成了6个Point对象(A,B,C,newPoint[3])。number作为静态数据成员,被同一类的不同对象所共享,故结果为6。

材料分析题
单项选择题