有如下类定义和变量定义: class A{ public: A(){data=0;} A(int x){data=x;} ~A(){} int GetData()const{return data;}

admin2021-06-10  21

问题 有如下类定义和变量定义:
    class A{
    public:
    A(){data=0;}
    A(int x){data=x;}
    ~A(){}
    int GetData()const{return data;}
    void SetData(int n){data=n;}
    private:
    int data;
    };
    const A a(5);
    A b(8);
    下列函数调用中错误的是(    )。

选项 A、a.GetData();
B、a.SetData(10);
C、b.GetData();
D、b.SetData(10);

答案B

解析 题意中定义了两个对象a和b,a是const变量,将一个对象说明为常对象后,通过这个常对象只能调用它的常成员函数,而不能调用其他成员函数,所以不能通过调用a成员函数修改对象成员的值,而b则可以,所以a.SetData(10)的调用是错误的。由于GetData()是常成员函数,所以a.GetData()的调用正确,答案为B选项。
转载请注明原文地址:https://kaotiyun.com/show/Uqfp777K
0

最新回复(0)