问题
单项选择题
下面程序的结果为( )。 #include<iostream.h> intC; classA { private: inta; staticintb; public: A( ){a=0;c=0;} voidseta( ){a++;} voidsetb( ){b++;} voidsetc( ){c++;} voiddisplay( ){cout<<a<<""<<b<<""<<c;} }; intA::b=0; voidmain( ) { Aa1,a2; a1.seta( ); a1.setb( ); a1.setc( ); a2.seta( ); a2,setb( ); a2.setc( ); a2.display( ); }
A.121
B.122
C.112
D.222
答案
参考答案:B
解析:C++语言中全局变量是任何函数都可以改变的量,静态变量的有效范围在定义它的类中,而普通的变量的有效性只在使用它的函数中,在本题中c为全局变量,b为静态变量,a为普通变量,b和c在类A的对象a1和a2中都自加1。所以b,c为2,a为1。