Staff类含有int型数据成员ID,两个Staff对象相等是指它们的ID相同。下面的函数重载了运算符==,它用来判断两个Staff对象是否相等,相等时返回true,否则返回false。请将横线处缺失部分补充完整。bool Staff::Staff==(const Staff &s){return(【 】)}

题目

Staff类含有int型数据成员ID,两个Staff对象相等是指它们的ID相同。下面的函数重载了运算符==,它用来判断两个Staff对象是否相等,相等时返回true,否则返回false。请将横线处缺失部分补充完整。

bool Staff::Staff==(const Staff &s)

{

return(【 】)

}


相似考题
参考答案和解析
正确答案:this.ID==s.ID
this.ID==s.ID
更多“Staff类含有int型数据成员ID,两个Staff对象相等是指它们的ID相同。下面的函数重载了运算符==,它用 ”相关问题
  • 第1题:

    ( 24 )下列关于运算符重载的描述中,错误的是

    A )可以通过运算符重载在 C++ 中创建新的运算符

    B )赋值运算符只能重载为成员函数

    C )运算符函数重载为类的成员函数时,第一操作数是该类对象

    D )重载类型转换运算符时不需要声明返回类型


    正确答案:A

  • 第2题:

    请使用VC6或使用【答题】菜单打开考生文件夹progl下的工程progl,该工程中包含程序文件main. cpp,其中有Salary(“工资”)类和主函数main的定义。程序中位于每个“//ERROR ****found****”之后的一行语句行有错误,请加以改正。改正后程序的输出结果应为: 应发合计:3500应扣合计:67.5实发工资:3432.5 注意:只修改每个“//ERROR ****found****”下的那一行,不要改动程序中的其他内容。 include<iostream> using namespace std; class Salary{ public: Salary(const char *id,double the_base,double the bonus,double the_tax) //ERROR **********found********** :the_base(base),the_bonus(bonus),the_tax(tax) { staff_id=new char[strlen(id)+1]; strcpy(staff_id,id); } //ERROR **********found********** ~Salary{delete * staff_id;} double getGmssPayconst{retum base+bonus;}//返回应发项合计 double getNetPayconst}retum getGmssPay-tax;}//返回实发工资额 private: char * staff id;//职工号 double base;//基本工资 double bonus;//奖金 double tax;//代扣个人所得税 }; int main{ Salary pay(”888888”,3000.0,500.0,67.50); cout<<”应发合计:”<<pay.getGrossPay<<" "; cout<<”应扣合计:”<<pay.getGrossPay一pay.getNetPay<<””; //ERROR**********found********** cout<<”实发工资:”<<pay::getNetPay<<endl; return 0; }


    正确答案:

    (1)base(the—base),bonus(the—bonus),tax(the—tax)
    (2)Salary{delete[]staff_id;}
    (3)cout<<”实发工资:”<<pay.getNetPay<<end1;

  • 第3题:

    Staff类含有血型数据成员ID,两个Staff对象相等是指它们的ID相同。下面的函数重载了运算符==,它用来判断两个Staff对象是否相等,相等时返回true,否则返回false。

    请将横线处缺失部分补充完整。

    bool Staff::Staff==(const Staff &s)

    {

    return (______);

    }


    正确答案:ID==s.ID或s.ID==ID或this ->ID==s.ID或s.ID==this->ID
    ID==s.ID或s.ID==ID或this ->ID==s.ID或s.ID==this->ID 解析:本题考核运算符的重载。运算符“==”作为成员函数重载,所以在横线处填入的表达式应该为对象本身ID与对象sID的比较表达式,即ID==s.ID。

  • 第4题:

    下列关于运算符重载的描述中,错误的是( )。A.可以通过运算符重载在C++中创建新的运算符

    下列关于运算符重载的描述中,错误的是( )。

    A.可以通过运算符重载在C++中创建新的运算符

    B.赋值运算符只能重载为成员函数

    C.运算符函数重载为类的成员函数时,第一操作参数就是该类对象

    D.重载类型转换运算符时不需要声明返回类型


    正确答案:A
    A。【解析】运算符的重载是针对C++中原有运算符进行的,不能通过重载创造新的运算符。

  • 第5题:

    有如下的运算符重载函数定义:double operator+(int i,int k){return double(i+k);}但定义有错误,对这个错误最准确的描述是( )。

    A.#NAME?

    B.两个int型参数的和也应该是int型,而这里将+的返回类型声明为double

    C.没有将运算符重载函数声明为某个类的友元

    D.C++已经提供了求两个int型数据之和的运算符+,不能再定义同样的运算符


    正确答案:D
    解析:此题考查的是运算符的重载。c++语言规定,不能作为非成员函数重载的运算符有=、[]、()、->以及所有的类型转换运算符,故选项A)错误;运算符重载对返回值类型没有限制,故选项B)错误;C++并不强制要求非成员重载的运算符一定是某个类的友元,所以选项C)错误:题目中重载的“+”运算符的两个参数都是int类型,而C++已经提供了求两个血型数据之和的运算符+,编译器无法区分应该调用哪一个,所以应该选择选项D)。

  • 第6题:

    为类Matrix重载下列运算符号时,只能作为Matrix类成员函数重载的运算符是( )。

    A.+

    B.=

    C.<<

    D.++


    正确答案:B
    B。【解析】赋值运算符只能作为重载函数的成员函数,其他运算符都可以作为友元函数重载。

  • 第7题:

    在重载运算符函数时,下面运算符必须重载为类的成员函数的是( )。

    A.+

    B.-

    C.++

    D.->


    正确答案:D
    解析:=(),[],->运算符不能够重载为类的友元函数。

  • 第8题:

    前置自增运算符++重载为类的友元函数的形式为【 】,重载为类的成员函数的形式为【 】。 (设类为A,类对象为a)


    正确答案:friend A operator++(A &) a. operator++().
    friend A operator++(A &) a. operator++().

  • 第9题:

    有如下的运算符重载函数定义:double operator+(int i,int k){return double (i+ k);}但定义有错误,对这个错误最准确的描述是( )。

    A.“+”只能作为成员函数重载,而这里的“+”是作为非成员函数重载的

    B.两个int型参数的和也应该是int型,而这里将“+”的返回类型声明为double

    C.没有将运算符重载函数声明为某个类的友元

    D.C++已经提供了求两个int型数据之和的运算符+,不能再定义同样的运算符


    正确答案:D

  • 第10题:

    单选题
    下列描述中,关于c++说法正确的是()
    A

    所有的运算符号都可以重载。不能重载的运算符只有4个,作用域运算符:’::’,成员解引用运算符:’.*’,成员访问运算符:’.’,条件运算符:’?:’

    B

    基类类型的指针可以指向子类,子类类型的指针也可以指向基类

    C

    可以在类的构造函数中对静态数据成员进行初始化

    D

    动态联编要满足两个条件:被调用的成员函数是虚函数;用指针或引用调用虚函数


    正确答案: D
    解析: 暂无解析

  • 第11题:

    单选题
    为类Matrix重载下列运算符时,只能作为Matrix类成员函数重载的运算符是(  )。
    A

    +

    B

    =

    C

    <<

    D

    ++


    正确答案: B
    解析:
    在C++中,运算符“=”、“[]”、“()”、“->”以及所有的类型转换运算符只能作为成员函数重载。

  • 第12题:

    单选题
    已知在一个类体中包含如下函数原型:VOLUME operator-(VOLUME)const;,下列关于这个函数的叙述中,错误的是(  )。
    A

    这是运算符-的重载运算符函数

    B

    这个函数所重载的运算符是一个一元运算符

    C

    这是一个成员函数

    D

    这个函数不改变类的任何数据成员的值


    正确答案: C
    解析:
    运算符“-”有一元二元两种,在本题中它是一个二元运算符,不能更新对象的数据成员,也不能调用该类中没有const修饰的成员函数。

  • 第13题:

    已知在一个类体中包含如下函数原型:VOLUME OPERATOR-(VOLUME)const;,下列关于这个函数的叙述中,错误的是( )。

    A.这是运算符-的重载运算符函数

    B.这个函数所重载的运算符是一个一元运算符

    C.这是一个成员函数

    D.这个函数不改变类的任何数据成员的值


    正确答案:B
    解析: 本题考核运算符的重载。题中语句为运算符“-”是一个二元运算符,且是作为常成员函数来重载的,所以它不能更新对象的数据成员,也不能调用该类中没有用const修饰的成员函数。

  • 第14题:

    下列关于运算符重载的描述中,错误的是( )。

    A.可以通过运算符重载在C++中创建新的运算符

    B.赋值运算符只能重载为成员函数

    C.运算符函数重载为类的成员函数时,第一操作就是该类对象

    D.重载类型转换运算符时不需要声明返回类型


    正确答案:A
    解析:运算符的重载是针对C++中原有运算符进行的,不能通过重载创造新的运算符。

  • 第15题:

    下面关于自定义类的运算符重载的说法中,正确的是()。

    A.类友元形式重载的运算符,重载函数的参数个数与运算符的实际操作数个数相同

    B.类友元形式重载的运算符,重载函数中的this指针指向第一个运算数

    C.类友元形式重载的运算符,重载函数中可以直接访问类中的私有成员

    D.所有运算符都可以以类友元形式进行重载


    正确答案:AC

  • 第16题:

    多数运算符既能作为类的成员函数重载,也能作为类的非成员函数重载,但运算符[]只能作为类的______函数重载。


    正确答案:成员
    成员 解析:此题考查的是运算符重载。在C++中,“=”、“[]”、“()”、“->”以及所有的类型转换符只能作为成员函数重载,不能重载为友元函数。

  • 第17题:

    下面关于成员函数重载运算符和友元函数重载运算符相同的是( )。

    A.成员函数和友元函数可重载的运算符是不相同的

    B.成员函数和友元函数重载运算符时都需要用到this指针

    C.成员函数和友元函数重载运算符时都需要声明为公有的

    D.成员函数和友元函数重载运算符时的参数可能是相同的


    正确答案:A

  • 第18题:

    有如下的运算符重载函数定义: double operator+(inti,intk){return double(i+k);} 但定义有错误,对这个错误最准确的描述是( )。

    A.+只能作为成员函数重载,而这里的+是作为非成员函数重载的

    B.两个int型参数的和也应该是int型,而这里将+的返回类型声明为double

    C.没有将运算符重载函数声明为某个类的友元

    D.C++已经提供了求两个int型数据之和的运算符+,不能再定义同样的运算符


    正确答案:D
    解析: 此题考查的是运算符的重载。C++语言规定,不能作为非成员函数重载的运算符有=、[]、()、->以及所有的类型转换运算符,故选项A)错误:运算符重载对返回值类型没有限制,故选项B)错误;C++并不强制要求非成员重载的运算符一定是某个类的友元,所以选项C)错误;题目中重载的“+”运算符的两个参数都是int类型,而C++已经提供了求两个int型数据之和的运算符+,编译器无法区分应该调用哪一个,所以应该选择选项D)。

  • 第19题:

    下列关于运算符函数的描述中,错误的是( )。

    A.运算符函数的名称总是以0perator为前缀

    B.运算符函数的参数可以是对象

    C.运算符函数只能定义为类的成员函数

    D.在表达式中使用重载的运算符相当于调用运算符重载函数


    正确答案:C
    C。【解析】该题主要考查运算符函数的定义及运算符重载时应注意事项,运算符重载是函数重载的一种特殊情况。

  • 第20题:

    在重载运算符函数时,下面( )。运算符必须重载为类成员函数形式。

    A.+

    B.-

    C.++

    D.->


    正确答案:D

  • 第21题:

    在终端机上配置终端机时需要提供哪些字段给西藏调用()

    • A、STAFF_ID
    • B、TERMINAL_ID
    • C、STAFF_ID和TERMINAL_ID
    • D、STAFF_ID和TERMINAL_ID和IP

    正确答案:C

  • 第22题:

    单选题
    下列关于运算符重载的描述中,错误的是(  )。
    A

    可以通过运算符重载在C++中创建新的运算符

    B

    赋值运算符只能重载为成员函数

    C

    运算符函数重载为类的成员函数时,第一操作数是该类对象

    D

    重载类型转换运算符时不需要声明返回类型


    正确答案: B
    解析:
    运算符重载是针对C++中原有运算符进行的,不能通过重载创造新的运算符。

  • 第23题:

    单选题
    下列关于赋值运算符“=”重载的叙述中,正确的是(  )。
    A

    赋值运算符只能作为类的成员函数重载

    B

    默认的赋值运算符实现了“深层复制”功能

    C

    重载的赋值运算符函数有两个本类对象作为形参

    D

    如果已经定义了复制(拷贝)构造函数,就不能重载赋值运算符


    正确答案: C
    解析:
    A项正确,赋值运算符“=”只能作为成员函数重载;B项错误,默认的运算符只实现了“浅层赋值”,若要实现“深层复制”,必须重载赋值运算符;C项错误,默认的赋值操作就是同类对象之间对应成员的逐一赋值,而常见的真正需要重载赋值运算符的情况是:类中包含指向动态空问的指针;D项错误,一个类如果需要重载运算符=,通常也就需要定义自己特有的复制构造函数,反之亦然。