有如下类定义:    class AA    {        int a;      public:    int getRef()const{return &a;}                 //①    int getValue()const{

admin2017-10-17  29

问题 有如下类定义:    class AA    {        int a;      public:    int getRef()const{return &a;}                 //①    int getValue()const{return a;)               //②    void set(int n)const{a=n;}                 //③    friend void show(AAaa)const{cout<<a;}    //④    };    其中的四个函数定义中正确的是

选项 A、①
B、②
C、③
D、④

答案B

解析 本题考查了常成员函数和友员函数的一些概念。getRef()函数返回的是a的地址值&a,而函数类型却定义为int,C++中不允许隐式的将一个地址值类型转换为int类型,故选项A不正确。set()函数被定义为常成员函数,但在函数中给a赋值,改变了数据成员的值这是不允许的,故选项C错误。show()函数被定义为AA类的友员函数,它不属于AA类而是一个全局函数。所以同时被定义为常成员函数是错误的。所以选项D不正确。故应该选择B。
转载请注明原文地址:https://jikaoti.com/ti/eBt0FFFM
0

最新回复(0)