问题
单项选择题
有如下程序:
#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。