有如下程序: #inc1ude <iostream> using namespace std; c1ass A{ public: A(int i):rl(i){} void print0 {cout<<’E

admin2019-05-06  59

问题 有如下程序:
    #inc1ude <iostream>
    using namespace std;
    c1ass A{
    public:
    A(int i):rl(i){}
    void print0  {cout<<’E’<<r1<<’—’;)
    void print() const    {cout<<’Ck<r1*rl<<’—’;)
    private:
    int r1,
    };
    int main(){
    A a1(2);    const A a2(4);
    al.print();  a2.print();
    return 0;
    }
    运行时的输出结果是(    )。

选项 A、运行时出错
B、E2—C16—
C、C4—C16—
D、E2—E4—

答案B

解析 类A包括一个整型数据成员r1,一个一般成员函数print(),一个常成员函数print() const。在主函数中定义了对象a1,并对r1的值赋2和常对象a2,并对r1的值赋4,在C++中,常对象不能被更新,所以常对象只能调用类的常成员函数,而不能调用一般成员函数。而一般的对象,既可以调用一般成员函数也可以调用常成员函数。所以在本题中,当执行al.print()时,输出为E2—,执行a2.print0时,输出为C16—。
转载请注明原文地址:https://kaotiyun.com/show/zE8p777K
0

相关试题推荐
最新回复(0)