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

admin2021-05-06  16

问题 有如下类定义:
        class MyClass {
        public:
            MyClass(double d=0.0):val(d) { }
            ______________
       //运算符函数-的声明
        private:
            double val;
        };
若要使语句序列
        MyClass y(4.6),z;
        z=6.7-y;
能够正常运行,横线处的声明语句应为

选项 A、friendMyClassoperator-(MyClass&,MyClass&);
B、friendMyClassoperator-(double,MyClass);
C、friendMyClassoperator-(MyClass&,double);
D、friendMyClassoperator-(double&,MyClass&);

答案B

解析 由调用函数6.7-y可知,double类型在运算符"-"的左边,应该作为运算符函数"-"的第一形参,选项A、C错误;由于运算符"-"函数并不改变操作数的状态,所以形参应该声明为const对象的引用,或者按值传递,参数按引用类型传递可能会改变操作数的状态,选项D错误;答案为B。
转载请注明原文地址:https://jikaoti.com/ti/HIh0FFFM
0

随机试题
最新回复(0)