pintia第四章

目录

判断题

选择


判断题

1.对每个可重载的运算符来讲,它既可以重载为友元函数,又可以重载为成员函数,还可以重载为非成员函数。错误;

3.对单目运算符重载为友元函数时,可以说明一个形参。而重载为成员函数时,不能显式说明形参。正确

当重载为成员函数时,双目运算符仅有一个参数。对单目运算符,重载为成员函数时,不能再显式说明参数。重载为成员函数时,总时隐含了一个参数,该参数是this指针。this指针是指向调用该成员函数对象的指针。 

运算符重载函数还可以为友元函数。当重载友元函数时,将没有隐含的参数this指针。这样,对双目运算符,友元函数有2个参数,对单目运算符,友元函数有一个参数。但是,有些运行符不能重载为友元函数,它们是:=,(),[]和->。

7.赋值运算符“ =”只能重载为成员函数。正确

赋值运算符重载函数只能是类的非静态的成员函数 C++规定,赋值运算符重载函数只能是类的非静态的成员函数,不能是静态成员函数,也不能是友元函数。 关于原因,有人说,赋值运算符重载函数往往要返回*this,而无论是静态成员函数还是友元函数都没有this指针。

选择

5.下列关于运算符重载的描述中,( )是正确的。

A.针对<<、>>运算符不可以采用友元函数进行重载;

B.针对<<、>>运算符既可以采用成员函数也可以采用友元函数进行重载;

C.AB说法均正确;

D.ABC均不正确 

用重载运算符表示,只能通过友员来实现,如果要用成员函数,则会有cout.operator<<(const F& f),所以这是不可能的.因此只能用友员来实现,operator<<(cout,f) 而cout是ostream型的,因此有以下标准格式.注意不能加const,因为cout是要改变的,会改变里的缓冲成员.

friend ostream& operator<<( ostream& cout, constF&)  //输出运算符的标准重载格式.

friend istream& operator>>(istream& is, F& f){ }   //输入运算符重载标准格式

6.下列哪一项说法是不正确的?

A.运算符重载的实质是函数重载

B.运算符重载可以重载为普通函数,也可以重载为成员函数 (有的只能重载为类的成员函数)

 C.运算符被多次重载时,根据实参的类型决定调用哪个运算符重载函数;

  D.运算符被多次重载时,根据函数类型决定调用哪个重载函数 (函数的特征表,即参数列表)

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值