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

admin2013-02-27  17

问题 有如下程序:
   #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

选项 A、 
B、 
C、 
D、 

答案C

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

最新回复(0)