下面程序的结果为 #include<iostream.h> int c; class A { private: int a; static int b; public: A( )

admin2010-12-16  54

问题 下面程序的结果为
   #include<iostream.h>
   int c;
   class A
   {
   private:
       int a;
       static int b;
   public:
       A( ) {a=0;c=0;}
   void seta( ) {a++;}
   void setb( ) {b++;}
   void setc( ) {c++;}
       void display( ) {cout < < a < < " " < < b < < " " < < c;}
   };
   int A: :b=0;
   void main( )
   {
   A a1,a2;
     a1.seta( ) ;
     a1.setb( ) ;
   al .setc( ) ;
   a2.seta( ) ;
     a2.setb( ) ;
     a2.setc( ) ;
     a2.display( ) ;
   }

选项 A、1 2 1
B、1 2 2
C、1 1 2
D、2 2 2

答案B

解析 C++语言中全局变量是任何函数都可以改变的量,静态变量的有效范围在定义它的类中,而普通的变量的有效性只在使用它的函数中,在本题中c为全局变量,b为静态变量,a为普通变量,b和c在类A的对象a1和s2中都自加1。所以b、c为 2,a为1。
转载请注明原文地址:https://kaotiyun.com/show/Y9Vp777K
0

最新回复(0)