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

admin2020-07-30  19

问题 有如下程序:
    #inc1ude<iostream>
    using namespace std;
    c1ass MyClass{
    public:
    MyClass(int x):val(x){}
    void Set(int x){val=x;}
    void Print()const{cout<<"val="<<val<<’\t’;}
    private:
    int val;
    };
    int main(){
    const MyClass obj1(10);
    MyClass obj2(20);
    obj1.Print();  //语句1
    obj2.Print();  //语句2
    obj1.Set(20);  //语句3
    obj2.Set(30);  //语句4
    return 0;
    }
    其主函数中错误的语句是(    )。

选项 A、语句1
B、语句2
C、语句3
D、语句4

答案C

解析 在创建类对象obj l(10)时,前面有关键字const,所以当语句3调用objl的成员函数试图修改其私有成员的数值的时候,会编译出错。
转载请注明原文地址:https://kaotiyun.com/show/tXyp777K
0

最新回复(0)