读书人

弱弱地问一个二级的题目。

发布时间: 2012-09-07 10:38:15 作者: rapoo

弱弱地问一个2级的题目。。。
06年的题。

有如下类定义:
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(AA aa)const{cout<<a;} //④
};
其中的四个函数定义中正确的是:
A)①
B)②
C)③
D)④

[解决办法]
B是正确的。
int getRef()const{return &a;} //①
&a是一个指针,与该函数的返回类型不相同,也不能将int指针类型隐式转换为int型,发生编译错误

void set(int n)const{a=n;} //③
该函数是一个常量成员函数,在该函数中不允许改变非mutable数据成员的值,发生编译错误

friend void show(AA aa)const{cout<<a;} //④
该函数为类AA的友元函数,不是成员函数,不能使用const进行修饰,只有类成员函数才可以使用const修饰,而且在该函数体中,不允许访问该类的非static数据成员,可以直接访问该类对象的私有数据成员或保护数据成员或公有数据成员

读书人网 >C++

热点推荐