下面程序的结果为() #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。