单选题 有如下类定义: class MyClass{ public: MyClass(int d=0):val(d)+{} _________ //运算符函数+的声明 private: int val; }; 若要使语句序列 MyClass X(2),y(4),z; z=7+y: y=x+3: 能够正常运行,横线处的声明语句应为( )。
【正确答案】 A
【答案解析】解析:程序中MYClass类给出一个默认构造函数,形参d是整数类型,默认值为0,在成员初始化列表中使用形参d初始化val成员;语句序列中两个表达式:7+y和x+3说明加法运算符函数的两个操作数可以是整型,也可以是MyClass类型,如果是整型的话,需要使用默认构造函数将整数类型隐式转换成临时的MyClass类对象,此时赋给运算符函数时,就不可以使用引用类型了,所以选项B、C、D都是错误的,选项A是正确的,选项A中由于两个操作数都是在形参列表,所以只能将运算符函数定义为友元函数,而不能定义为成员函数,本题答案为A。