首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下的运算符重载函数定义: double operator +(int i,int k){return double(i+k);} 但定义有错误,对这个错误最准确的描述是
有如下的运算符重载函数定义: double operator +(int i,int k){return double(i+k);} 但定义有错误,对这个错误最准确的描述是
admin
2013-02-27
71
问题
有如下的运算符重载函数定义: double operator +(int i,int k){return double(i+k);} 但定义有错误,对这个错误最准确的描述是
选项
A、+只能作为成员函数重载,而这里的+是作为非成员函数重载的
B、两个int型参数的和也应该是int型,而这里将+的返回类型声明为double
C、没有将运算符重载函数声明为某个类的友元
D、C++已经提供了求两个int型数据之和的运算符+,不能再定义同样的运算符
答案
D
解析
本题考查的是运算符重载。在C++中,不能作为非成员函数重载的运算符只有=、[]、()、->以及所有的类型转换运算符,因此选项A不正确。运算符重载对于返回值的类型并没有限制,因此选项B也不正确。将运算符重载函数声明为某个类的友元的目的是方便该函数访问类的私有和保护成员,C++并不强制要求非成员重载的运算符一定是某个类的友元,因此选项C也不正确。运算符重载也是一种函数重载,两个重载的函数至少要在参数个数或参数类型上有所不同,否则C++编译器就无法区分它们。因此,题目中重载的+运算符的两个参数都是int类型,而C++已提供了求两个int型数据之和的运算符+,所以编译器无法区分应该调用哪一个,故会报错,所以应该选择D。
转载请注明原文地址:https://kaotiyun.com/show/UqVp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
以下选项中不能用作C程序合法常量的是()。
以下选项中,能用作用户标识符的是()。
结构化程序设计主要强调的是()。
在数据管理技术发展的三个阶段中,数据共享最好的是()。
对软件系统总体结构图,下面描述中错误的是()。
算术运算符和圆括号有不同的运算优先级,对于表达式:a+b+c*(d+e),关于执行顺序,以下说法正确的是()。
以下数据结构中不属于线性数据结构的是
有如下的运算符重载函数定义:doubleoperator+(inti,intk){returndouble(i+k);}但定义有错误,对这个错误最准确的描述是()。
下列运算符重载函数的原型错误的是()。
随机试题
下列用语表现在提请减刑建议书中不规范的是()
下列哪项是硝酸甘油常见不良反应之一
商品乐果的大鼠经口LD50为247mg/kg,而纯品乐果则为60mg/kg,其毒效应受到哪种因素影响
工程质量检验评分以()为单元。
有关双代号网络图表达正确的是( )。
建设项目工程总承包即使采用总价包干的方式,稍大一些的项目也难以用固定总价包干,而多数采用()。
某企业2005年接受捐赠设备一台,收到的增值税专用发票上注明价款100万元,增值税17万元,企业另支付安装调试费用5万元,运输费用8万元,该项受赠资产应交企业所得税为()万元。
改变积分次序
Whereistheannouncementprobablybeingmade?
LearningaboutCognitiveGrammar(CG),anapproachtotheanalysisanddescriptionoflanguagestructure,isnoteasy.One
最新回复
(
0
)