有如下程序:    #include <iostream>    using namespace std;    class MyClass {    public:        MyClass(int x):val(x) {}        void 

admin2017-10-17  55

问题 有如下程序:    #include <iostream>    using namespace std;    class MyClass {    public:        MyClass(int x):val(x) {}        void Print() const { cout<<"const:val="<<val<<’\t’;}        void Print() { cout<<"val="<<val<<’\t’;}    private:        int val;    };    int main() {        const MyClass obj1 (10);        MyClass obj2(20);        obj1.Print();        obj2,Print();        return 0;    }程序的输出结果是

选项 A、val=10   const:val=20
B、const:val=10    const:val=20
C、const:val=10    val=20
D、val=10    val=20

答案C

解析 本题考查的知识点是:常成员函数的重载。使用const关键字说明的成员函数称为常成员函数。const关键字可以用于参与对重载函数的区分。重载的原则是:常对象调用常成员函数,一般对象调用一般成员函数。题目中的Print()就是通过const重载的两个成员函数,主函数中声明的obj1是常对象,而obj2是一般对象。故输出结果为const:val=10  val=20,应该选择C。
转载请注明原文地址:https://kaotiyun.com/show/fWAp777K
0

最新回复(0)