有如下类定义: class MyClass { public: MyClass(double d=0.0):val(d) { } ______________ /

admin2020-07-23  21

问题 有如下类定义:
        class MyClass {
        public:
            MyClass(double d=0.0):val(d) { }
            ______________        //类型转换运算符double的定义
        private:
            double val;
        };
若要使语句序列
        MyClass x(2.1);
        cout<能够正常运行,横线处的语句应为

选项 A、operatordouble()const{returnval;}
B、friendoperatordouble()const{returnval;}
C、doubleoperator()const{returnval;}
D、frienddoubleoperator()const{returnval;}

答案A

解析 题目需要定义类型转换运算符double,类型转换运算符是一种特殊的类成员函数,它定义将类类型的值转变为其他类型值,由于转换函数必须是成员函数,选项B、D错误;另外转换函数不能指定返回类型,并且形参列表必须为空,选项C错误;所以double类型转换运算符的定义为:operatordouble()const{returnval;};答案为A。
转载请注明原文地址:https://kaotiyun.com/show/mnyp777K
0

最新回复(0)