2、一个类的友元函数或友元类能够通过成员操作符访问该类的()
A.私有成员
B.公有成员
C.保护成员
D.公有成员、保护成员和私有成员
时间:2024-04-24 15:27:41
相似题目
-
一个类的友元函数或友元类可以访问该类的()。
A . 私有成员
B . 保护成员
C . 公有成员
D . 所有成员
-
某类中的友元类的所有成员函数可以存取或修改该类中的私有成员。
A . 正确
B . 错误
-
什么叫做友元类?
-
类的友员函数是指可以访问本类私有成员的其它类的成员函数。
A . 正确
B . 错误
-
若要把函数voidf()定义为类aClass的友元函数,则应该在类aClass的定义中加入的语句是()。
A . voidf();
B . staticvoidf();
C . friendf();
D . friendvoidf();
-
一个类A若声明为另一个类B的友元类,则意味着类A中的所有成员函数都是类B的___________。
-
已知类A是类B的友元,类B是类C的友元,则:
-
在C++中,运算符的重载有两种实现方法,一种是通过成员函数实现,另一种则通过友元函数实现
-
当类A成为类B的友元类时,以下说法正确的是( )
-
一个类的友元函数或友元类能够通过成员操作符访问该类的( )。
-
如果表达式y*x++中,“*”是作为成员函数重载的运算符,“++”是作为友元函数重载的运算符,采用运算符函数调用格式,该表达式还可表示为
A.x.operator++(0).operator*(y);
B.operator*(x.operator++(0),y);
C.y.operator*(operator++(x,0))
D.operator*(operator++(x,0),y)
-
如果在表达式++x/y中,++是作为友元函数重载的,/是作为成员函数重载的,则该表达式还可为
A.(operator++(x) ) .operator/(y)
B.(operator++(0) ) .operator/(y)
C.operator/((operator++(x,0) ) ,y)
D.operator/((operator++(0) ) ,y)
-
假定有类定义class A; 现在想要输出A类对象a的值,正确的是() ① 将运算符<<重载为A的成员函数; ② cout<<a; ③ 将运算符<<重载为A的友元函数; ④ 在类A中定义公有成员函数display(),通过调用a.display()输出a的值
A.①②③
B.②③④
C.①③④
D.③④
-
类的私有成员只能被它的成员函数和友元函数访问。
-
若要把类 FriendClass 定义为类 MyClass 的友元类,则应在类 MyClass 的定义中加入语句【】。
若要把类 FriendClass 定义为类 MyClass 的友元类,则应在类 MyClass 的定义中加入语句【 】。
-
如果类被说明成类B的友元,则类的成员即类B的成员 B.类B的成员即类的成员 C.类如果类被说明成类B的友元,则类的成员即类B的成员 B.类B的成员即类的成员 C.类的成员函数不得访问类B的成员 D.类B不一定是类的友元
A.类A的成员即类B的成员
B.类B的成员即类A的成员
C.类A的成员函数不得访问类B的成员
D.类B不一定是类A的友元
-
C++语言中的友元函数为在类外访问类中的私有成员和保护成员提供了方便,但破坏了类的 ______ 和 ______。
-
【单选题】已知类A是类B的友元,类B是类C的友元,则 。
A.类A一定是类C的友元
B.类C一定是类A的友元
C.类C的成员函数可以访问类B的对象的任何成员
D.类A的成员函数可以访问类B的对象的任何成员
-
在你自己定义的类中如果要重载流插入运算符 << ,你必须将该运算符重载为类的友元函数,而不是成员函数,否则就会出现非常奇怪的使用方式。
-
使用VC6打开考生文件夹下的源程序文件modi3.cpp。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。完成以下功能: 1.声明类objA1,请在注释∥********1********后添加适当的语句。 2.为类objA0增加友元函数func(),请在注释∥********2********后添加适当的语句。 3.为类objA1增加友元函数func(),请在注释∥********
-
什么是友元类?
-
69、友元本身就是类的成员。
-
66、友元访问类对象的成员时使用()。
A.类的成员名
B.“this->成员名”的形式
C.“类名::成员名”的形式
D.“对象名.成员名”的形式
-
下面给出了矩阵类Matrix 定义。为了求两个矩阵对象的乘积, 需要定义一个Matrix的友元函数Multiply() 。请按照友元函数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;
// 请在下面编写剩余部分
}