有如下类定义和对象定义: class A { public: A( ):data(0){ } A(int x):data(x) { } ~A( ){ } int GetData( )const{return

admin2019-03-05  30

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

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

答案B

解析 常对象是指对象的所有成员的值都不能被修改,常成员函数是指只能引用本类的数据成员,而不能修改它们的成员函数;常成员函数可以被常对象调用,也可以被普通对象调用,而普通成员函数只能被普通对象调用,不能被常对象调用,题意中对象a是常对象,b是普通对象,SetData( )是普通成员函数,GetData( )是常成员函数,所以选项B中通过常对象a调用普通成员函数SetData( )是错误的,选项A、C、D都正确;本题答案为B。
转载请注明原文地址:https://kaotiyun.com/show/kvAp777K
0

最新回复(0)