更多"C++语言中的友元函数为在类外访问类中的私有成员和保护成员提供了方便,"的相关试题:
[填空题]C++语言中的友元函数为在类外访问类中的私有成员和保护成员提供了方便,但破坏了类的______和______。
[单项选择]一个类的友元函数或友元类能够通过成员操作符访问该类的( )。
A. 私有成员
B. 保护成员
C. 公有成员
D. 公用成员、保护成员和私有成员
[单项选择]下面关于成员函数重载运算符和友元函数重载运算符相同的是
A) 成员函数和友元函数可重载的运算符是不相同的
B) 成员函数和友元函数重载运算符时都需要用到this指针
C) 成员函数和友元函数重载运算符时都需要声明为公有的
D) 成员函数和友元函数重载运算符时的参数町能是相同的
[单项选择]个类中定义了成员函数、静态成员函数和友元函数,以下叙述中正确的是()。
A. 成员函数、静态成员函数和友元函数都具有this指针
B. 成员函数具有this指针,静态成员函数和友元函数没有this指针
C. 成员函数和静态成员函数具有this指针,但友元函数没有this指针
D. 成员函数和友元函数具有this指针,而静态成员函数没有this指针
[单项选择]如果表达式x*y+z中,“*”是作为友元函数重载的,“+”是作为友元函数重载的,则该表达式还可为
A. operator+(operator*(x,y),z)
B. x.operator+(operator*(x,y),Z)
C. y.operator*(operator+(x,y),z)
D. x.operator+(operator*(x,y))
[单项选择]下面关于成员函数重载运算符和友元函数重载运算符相同的是( )。
A. 成员函数和友元函数可重载的运算符是不相同的
B. 成员函数和友元函数重载运算符时都需要用到this指针
C. 成员函数和友元函数重载运算符时都需要声明为公有的
D. 成员函数和友元函数重载运算符时的参数可能是相同的
[单项选择]对于重载的运算符 > >,它是一个
A) 用于输入的友元函数
B) 用于输入的成员函数
C) 用于输出的友元函数
D)用于输出的成员函数
[单项选择]下面对于友元函数描述正确的是
A. 友元函数的实现必须在类的内部定义
B. 友元函数是类的成员函数
C. 友元函数破坏了类的封装性和隐藏性
D. 友元函数不能访问类的私有成员
[填空题]下列程序中声明了两个类AA和BB,其中函数“print”是类AA的成员函数,但是类BB的友元函数。
请在①、②和⑧处各填入正确的内容,使程序能正常运行。
#include<iostream.h>
[12] ;
class AA{
int t;
public:
AA(int x){t=x;}
void print(BB &b) ;
};
class BB{
int s;
public:
BB(int y){s=y;}
friend void [13] print(BB &);
};
void [14]
{ cout<<"AA:"<<t<<"BB: "<<w.s<<end1;}<
void main( ){
AA m(6);
BB n(8);
m.print(n);
}
输出结果为:AA:6;BB:8
[填空题]将x+y * z中的“+”用成员函数重载," * "用友元函数重载应写为 。
[单项选择]下列运算不能重载为友元函数的是
A. =()[]->
B. +-++--
C. ><>=<=
D. +=-=*=/=
[单项选择]以下关于友元函数的叙述不正确的是
A. 友元函数提供了类之间数据共事的一个途径
B. 一个友元函数可以访问任何类的任何成员
C. 友元函数破坏了数据的封装
D. 友元函数增加了程序设计的灵活性
[填空题]将x+y*z中的“+”用成员函数重载,“ *”用友元函数重载应写为 【15】 。