有如下程序: #include<iostream> using namespace std; int i=1; class Fun { public: static int i; int va

admin2020-04-07  44

问题 有如下程序:
    #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 fun1;
    const Fun fun2;
     _______
    return 0:
    }
    若程序的输出结果是:123
    则程序中横线处的语句是(    )。

选项 A、cout<<fun1.value()<<Fun:i<<fun2.value();
B、cout<<Fun::i<<fun1.value()<<fun2.value();
C、cout<<fun1.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 value()const{return i+l;}使得外部静态变量i的值增加为3,故输出3。
转载请注明原文地址:https://jikaoti.com/ti/HEA0FFFM
0

最新回复(0)