下面的语句中能将类B定义为类A的友元类的是()。
A.friendclassB
B.classA{friendB}
C.classA{friendclassB;}
D.classfriendBclassA
A.friendclassB
B.classA{friendB}
C.classA{friendclassB;}
D.classfriendBclassA
A.友元函数可以是普通函数,可以是其他类的成员函数,也可以是本类的成员函数
B.友元函数可以访问多个类的私有成员和保护成员
C.在调用友元函数的时候需要使用“.”运算符
D.如果友元函数是某个类的成员函数,在定义这个友元函数的时候要使用类前缀
A.类A一定是类C的友元
B.类C一定是类A的友元
C.类C的成员函数可以访问类B的对象的任何成员
D.类A的成员函数可以访问类B的对象的任何成员
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;
// 请在下面编写剩余部分
}
A.赋值运算符和下标运算符只能重载为类的友元函数
B.赋值运算符重载时一般以引用方式返回*this,表示返回赋值运算符的左操作数
C.赋值运算符合下标运算符只能重载为类的成员函数
D.使用重载的赋值运算符时,左操作数一定是自定义类型
A.友元函数可以绕开成员函数直接访问类的私有和保护成员,避免调用成员函数相关的开销
B.友元函数虽然不是类的成员函数,但是因为友元函数是在类内说明的,所以也带有用this指针
C.友元函数可以以使用类内的所有成员,因此破坏了数据的安全性
D.友元函数的形参如果是类对象,可以用对象名,对象的引用或者对象指针
(C++语言)友元作用是
A、提高程序运行效率B、加强类的封装性
C、实现数据的隐藏性D、增加成员函数的种类
A.该运算符是一个单目运算符
B.该运算符函数有一个隐含的参数this
C.该运算符函数是类的成员函数
D.该运算符函数是类的友元函数