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

admin2015-07-22  58

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

选项 A、operator double() const { return val; }
B、friend operator double() const { return val; }
C、double operator() const { return val; }
D、friend double operator() const { return val; }

答案A

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

最新回复(0)