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