首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下的运算符重载函数定义: double operator +(int i,int k){return double(i+k);} 但定义有错误,对这个错误最准确的描述是
有如下的运算符重载函数定义: double operator +(int i,int k){return double(i+k);} 但定义有错误,对这个错误最准确的描述是
admin
2013-02-27
49
问题
有如下的运算符重载函数定义: 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语言赋值语句是()。
下面不合法的常量数据是()。
有下列程序 #include<stdio.h> typedefstructstu{ charname[9]; chargender; intscore; }STU; voidf(STU*a) {
有如下形式的函数 intfun(inta[4][5],int*p[10],intn) {……} 调用函数之前需要对函数进行说明,即所谓的函数向前引用说明,以下对fun函数说明正确的是()。
以下说法正确的是()。
在数据管理技术发展的三个阶段中,数据共享最好的是()。
数据库设计中反映用户对数据要求的模式是()。
在一棵二叉树上第5层的结点数最多是
关于new运算符的下列描述中,错误的是()。
下列不属于结构化分析常用工具的是()。
随机试题
电动潜油泵由哪几部分组成?
治疗新生儿肺透明膜病最重要原则是
把小儿的生理病理概括为"脏腑柔弱,易虚易实,易寒易热"的医家是提出小儿"肝常有余,脾常不足"、"心常有余,肺常不足"、"肾常虚"的医家是
手动火灾报警按钮安装在墙上距地(楼)面高度1.5m处。应安装牢固,并不得倾斜。按钮的外接导线,应留有( )以上的余量。
某企业2000年度有关资料如下:实收资本比1999年增加100万元。与银行签订一年期借款合同,借款金额300万元,年利率5%。与甲公司签订以货换货合同,本企业的货物价值350万元,甲公司的货物价值450万元。与乙公司签订受托加工合同,乙公司提供价值
自然人的民事权利能力和民事行为能力是如何规定的?
Manystudentsfindtheexperienceofattendinguniversitylecturestobeaconfusingandfrustratingexperience.Thelecturersp
例如:为了让自己更健康,他每天都花一个小时去锻炼身体。★他希望自己很健康。(√)今天我想早点儿回家。看了看手表,才5点。过了一会儿再看表,还是5点,我这才发现我的手表不走了。★那块手表不是他的。(×)
HelsinkiCard(赫尔辛基卡)enablesthetouristtotravelfreeonthebuses,trainsandsubways.Holdersofthecardenjoya70%discount
AsanAlaskanfisherman,TimothyJune,54,usedtothinkthathewassafefromindustrialpollutants(污染物)athishomeinHaines—a
最新回复
(
0
)