首页 > 考试题库
题目内容 (请给出正确答案)
[多选题]

关于友元函数的说法正确的是()。

A.友元函数可以是普通函数,可以是其他类的成员函数,也可以是本类的成员函数

B.友元函数可以访问多个类的私有成员和保护成员

C.在调用友元函数的时候需要使用“.”运算符

D.如果友元函数是某个类的成员函数,在定义这个友元函数的时候要使用类前缀

查看答案
答案
收藏
如果结果不匹配,请 联系老师 获取答案
您可能会需要:
您的账号:,可能还需要:
您的账号:
发送账号密码至手机
发送
安装优题宝APP,拍照搜题省时又省心!
更多“关于友元函数的说法正确的是()。”相关的问题
第1题
下列关于自定义类的运算符重载的说法中,正确的是()。

A.赋值运算符和下标运算符只能重载为类的友元函数

B.赋值运算符重载时一般以引用方式返回*this,表示返回赋值运算符的左操作数

C.赋值运算符合下标运算符只能重载为类的成员函数

D.使用重载的赋值运算符时,左操作数一定是自定义类型

点击查看答案
第2题
下面关于友元函数使用特点的说明正确的是()。

A.友元函数可以绕开成员函数直接访问类的私有和保护成员,避免调用成员函数相关的开销

B.友元函数虽然不是类的成员函数,但是因为友元函数是在类内说明的,所以也带有用this指针

C.友元函数可以以使用类内的所有成员,因此破坏了数据的安全性

D.友元函数的形参如果是类对象,可以用对象名,对象的引用或者对象指针

点击查看答案
第3题
重载运算符为成员函数和友元函数时的关键区别在于成员函数具有this指针,而友元函数没有this指针。()
点击查看答案
第4题
什么是友元函数?

点击查看答案
第5题
已知类A是类B的友元,类B是类C的友元,则()

A.类A一定是类C的友元

B.类C一定是类A的友元

C.类C的成员函数可以访问类B的对象的任何成员

D.类A的成员函数可以访问类B的对象的任何成员

点击查看答案
第6题
(C++语言)友元作用是 A、提高程序运行效率B、加强类的封装性C、实现数据的隐藏性D、增加成员函数

(C++语言)友元作用是

A、提高程序运行效率B、加强类的封装性

C、实现数据的隐藏性D、增加成员函数的种类

点击查看答案
第7题
在表达式x+y*z中,+作为成员函数重载的运算符,*作为友元函数重载的运算符,以下叙述中正确的是()

A.operator+有2个参数,operator*有2个参数

B.operator+有2个参数,operator*有1个参数

C.operator+有1个参数,operator*有2个参数

D.operator+有1个参数,operator*有1个参数

点击查看答案
第8题
在重载一运算符时,若运算符函数的形参表中没有参数,则可能的情况是()。

A.该运算符是一个单目运算符

B.该运算符函数有一个隐含的参数this

C.该运算符函数是类的成员函数

D.该运算符函数是类的友元函数

点击查看答案
第9题
下面给出了矩阵类Matrix 定义。为了求两个矩阵对象的乘积, 需要定义一个Matrix的友元函数Mult
iply() 。请按照友元函数Multiply()的声明编写出该函数的定义。

class Matrix {

public:

Matrix(int row,int col); // 构造一个具有row 行col 列的矩阵

~Matrix() {delete []mem;} // 析构函数

friend bool Multiply(Matrix &m1, Matrix &m2, Matrix &m3);

// 定义Multiply() 为友元函数,该函数把m1×m2的值赋给m3

// 其他成员函数从略

private:

int *mem; // 动态申请矩阵空间

const int rows,cols; // 矩阵的行数和列数

};

Matrix::Matrix(int row,int col):rows(row),cols(col)

{

mem = new int[row*col];

}

bool Multiply(Matrix &m1, Matrix &m2, Matrix &m3)

{

// 确定矩阵是否能够进行相乘

if(m1.rows != m3.rows ||m2.cols != m3.cols || m1.cols != m2.rows) return false;

// 定义sum变量,用于计算乘积矩阵m3中每个元素的值

int sum;

// 请在下面编写剩余部分

}

点击查看答案
第10题
下列()能够正确地申明友元函数,让函数fun能够访问类A的私有成员。

A.void fun() friend class A;

B.Friend class A{private: int i; void fun();};

C.class A{private: int i; friend fun();};

D.class A{private: int i; friend void fun();};

点击查看答案
退出 登录/注册
发送账号至手机
密码将被重置
获取验证码
发送
温馨提示
该问题答案仅针对搜题卡用户开放,请点击购买搜题卡。
马上购买搜题卡
我已购买搜题卡, 登录账号 继续查看答案
重置密码
确认修改