有如下程序: #include<iostream> using namespace std; int i=1; class Fun { public: static int i; int value(){return i-1;} int value()const{return i+1;} }; int Fun::i=2; int main() { int i=3; Fun fun 1; const Fun fun2; ______ return 0; } 若程序的输出结果是: 123 则程序中横线处的语句是( )。
A.cout<<fun1.value()<<Fun::i<<fun2.value();
B.cout<<Fun::i<<fun1.value()<<fun2.value();
C.count<<fun.value()<<fun2.value()<<Fun::i;
D.cout<<fun2.value()<<Fun::i<<fun1.value();
参考答案:A
解析: 此题因为定义的变量i是static类型的(main()函数内部的i只是一个局部变量),所以,选项A)中fun1.value()的返回值是1,Fun::i引用的是外部变量会输出2;fun2.value();会调用常成员函数int valueoconstfrerun i+1;}使得外部静态变量i的值增加为3,故输出3。